gpt4 book ai didi

javascript - sinon - CallsArg 与高级用法

转载 作者:行者123 更新时间:2023-11-28 08:16:00 25 4
gpt4 key购买 nike

我可以使用callsArgWith来测试回调,例如:

var modelsMock = { 
Users: {
findOne: sinon.stub()
}
};

usersController.__set__({
'models': modelsMock,
});

//... inside a test:
var user = 'foo';
modelsMock.Users.findOne.callsArgWith(1, true, user);

当我的代码是:

时,这工作得很好:
models.Users.findOne(id, function(err, user) {
//stuff here.
});

但是在以下情况下如何测试回调?

var user = new models.Users(userData);
user.save(function(err) {
//I want to test this callback
});

如果还不够清楚,请告诉我,我会尽力解释得更好。

最佳答案

您可以使用 spy 函数作为回调本身;它与您现有的模拟无关。

假设您要测试以下功能:

function createUser(callback) {
var user = new models.Users(userData);
user.save(callback);
}

在您的测试中,您将向其传递一个 spy 作为回调

// inside a test
var spyCallback = sinon.spy();
// when
createUser(spyCallback);
// then
assert(spyCallback.calledWith(user));

关于javascript - sinon - CallsArg 与高级用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23583113/

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