【发布时间】:2018-08-16 19:54:03
【问题描述】:
我正在尝试使用 sinon 或 sinon-chai 的 calledWithNew(或简称为),但似乎无法使其正常工作,我在网上查看了一些建议也没有运气,这是我的功能正在尝试测试:
users.js
exports.create = function (data) {
//some validation
var user = new User(data);
return user.save().then((result) => {
return mailer.sendWelcomeEmail(data.email, data.name).then(() => {
return {
message: 'User created',
userId: result.id
};
});
}).catch((err) => {
return Promise.reject(err);
});
}
这是我的测试:
users.test.js
beforeEach(() => {
saveStub = sandbox.stub(User.prototype, 'save').resolves(sampleUser);
spy = sandbox.spy(User);
});
afterEach(() => {
sandbox.restore();
});
it('should call user.save', async () => {
result = await users.create(sampleArgs);
expect(saveStub).to.have.been.called; //-> true
expect(spy).to.have.been.called; //-> false, calledWithNew returns same result as well
});
我发现了几篇建议监视 (window, 'className') 的帖子,但我使用的是 mocha,而不是浏览器。
尝试监视(全局、用户/用户.原型)也没有奏效。
【问题讨论】:
标签: node.js unit-testing mocha.js sinon spy