所以我正在尝试对一个函数进行单元测试,我在这里写的是函数:
function compareServices(service1, service2) {
if (service1.name != service2.name) {
return false
}
if (service1.port != service2.port) {
return false
}
if (service1.target != service2.target) {
return false
}
if (service1.address != service2.address) {
return false
}
return true
}
它位于我的 main.js 文件中。现在,当我尝试运行测试时,我收到一条错误消息:
Main #compareServices() should compare if two services match:
TypeError: main.compareServices is not a function
at Context.<anonymous> (test/stelaSpec.js:21:25
这是我的测试文件:
var expect = require("chai").expect;
var main = require("../src/main.js");
describe("Main", function(){
describe('#compareServices()', function() {
it('should compare if two services match', function() {
var svc1 = {
"name": "test.fg.service",
"port": 8001,
"target": "mac-book",
"address": "192.2.2.2"
}
var svc2 = {
"name": "test.fg.service",
"port": 8001,
"target": "mac-book",
"address": "192.2.2.2"
}
var result = main.compareServices(svc1, svc2);
expect(result).equal(true)
});
});
});
为什么说它不是一个函数,而它是一个函数?
最佳答案
确保在 main.js 文件的末尾包含以下内容:
module.exports = {
compareServices: compareServices
};
这将使需要它的其他 javascript 文件可以访问该函数。
关于node.js - Mocha 单元测试找不到功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35777882/