【发布时间】:2016-03-30 22:28:40
【问题描述】:
代码:
Model = {};
var functionToTest = function (dataPoints) {
return Model.getDataPointValue(dataPoints, function (dataPoint) {
if (dataPoint.unit === 'unit') {
return dataPoint.value;
}
});
};
Model.functionToTest = functionToTest;
测试用例:
describe ('functionToTest', function () {
it ('validates correct value is returned', function () {
var dataPoints = [{
'unit': 'unit',
'value' : 1
}];
var mock = sinon.mock(Model);
mock.expects('getDataPointValue').once().withExactArgs(dataPoints, function (dataPoint) {
if (dataPoint.unit === 'unit') {
return dataPoint.value;
}
});
Model.functionToTest(dataPoints);
mock.verify();
});
});
回应:
ExpectationError: Unexpected call: getDataPointValue([{ unit: "unit", value: 1 }], function () {})
Expected getDataPointValue([{ unit: "unit", value: 1 }], function () {}) once (never called)
我不明白为什么它不接受相同的函数定义作为参数。有什么线索吗? 是否有不同的方法可以使用 sinon 来测试作为 mocha 中的函数的函数参数?
【问题讨论】:
标签: javascript mocha.js sinon mocha-phantomjs sinon-chai