gpt4 book ai didi

javascript - Sinon mock expects().withExactArgs(function() {}) 返回一次(从未调用过)

转载 作者:行者123 更新时间:2023-11-29 21:31:24 25 4
gpt4 key购买 nike

代码:

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 中作为函数的函数参数?

最佳答案

如果您总是将相同的函数传递给 getDataPointValue,则无需测试该函数是否已传递,您可以只测试第一个参数是否已传递,如下所示:

mock.expects('getDataPointValue').once().withArgs(dataPoints);

关于javascript - Sinon mock expects().withExactArgs(function() {}) 返回一次(从未调用过),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36320876/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com