我在节点env中使用mocha,chai和sinon进行单元测试。我需要测试一个场景,该场景调用服务以获取数据并返回数据。
我的控制器如下:
{
get model() { return schema},
async findUser(data) {
const data = await this.model.find({ id: data.id });
return data;
}
}
在我的摩卡测试中,我使用Sinon存根返回模型并找到类似以下的函数:
sinon.stub(controller, 'model').get(() => ({
find: () => ({ username: 'asdf' })
}));
我的测试按预期工作。现在,我想测试一下我的find方法ID是否被调用过一次并将参数传递给它。为此,我添加了以下代码
const spyFind = sinon.spy(controller.model, 'find');
assert.isTrue(spyFind.calledOnce);
这应该返回true,因为调用了spyFind并返回了预期的模拟值。但是,当我调试时,spyFind对象会说isCalled为“ false”。有人可以帮助我了解我在做什么错吗?