【发布时间】:2019-10-30 13:07:40
【问题描述】:
我正在尝试为函数编写单元测试,但不知道如何检查它是否使用特定参数调用嵌套函数。我假设我需要将 sinon 与 chai 和 mocha 一起使用,但我真的需要一些帮助。
我想测试的功能如下:
function myFunc(next, value) {
if (value === 1) {
const err = new Error('This sets an error');
next(err);
} else {
next();
}
}
我想测试是否在有或没有 err 变量的情况下调用 next。从我目前阅读的内容来看,我应该为此使用间谍(我认为),但我将如何使用该间谍?从 Sinon 文档中查看这个示例,我不清楚 PubSub 来自哪里:
"test should call subscribers with message as first argument" : function () {
var message = "an example message";
var spy = sinon.spy();
PubSub.subscribe(message, spy);
PubSub.publishSync(message, "some payload");
sinon.assert.calledOnce(spy);
sinon.assert.calledWith(spy, message);
}
【问题讨论】:
-
你可以使用 spyOn 来查看函数是否被调用
-
@DhananjaiPai 你能举个例子说明我应该如何回答吗?
-
试试 Chai 间谍 [chaijs.com/plugins/chai-spies] 或 Sinon 的间谍 [sinonjs.org/releases/latest/spies]
-
@DhananjaiPai 我做了一个小编辑,指定了我卡在哪里更好。
标签: javascript unit-testing mocha.js chai sinon