【发布时间】:2021-04-07 15:53:18
【问题描述】:
我正在使用 ts-mock-imports,我想模拟一个函数调用的多个返回值,然后检查一个函数是否被调用了给定的次数。以下作品:
const getUserSpy = dataServiceMock.mock('getUserFromDB')
.returns({...USER_1})
.returns({...USER_2});
在我的测试用例中,我对 getUserFromDB() 进行了两次调用,在上述情况下,getUserSpy.callCount 等于 2。但这取决于顺序,所以我宁愿能够执行以下操作:
const getUser1Spy = dataServiceMock.mock('getUserFromDB')
.withArgs(USER_1_ID).returns({...USER_1});
const getUser2Spy = dataServiceMock.mock('getUserFromDB')
.withArgs(USER_2_ID).returns({...USER_2});
我希望 getUser1Spy 被调用一次,而 getUser2Spy 被调用一次。但是,看起来第二次调用 withArgs() 删除了之前的模拟实例。
【问题讨论】:
标签: javascript typescript unit-testing mocking