【发布时间】:2021-03-01 17:45:11
【问题描述】:
我对使用 Jest 编写测试文件非常陌生,我的目的是测试 applyPromotion 函数是否按预期工作。这是我的代码
describe('Promotion: Discount By', () => {
let menu = [{id:1, name: menu A}, {id:2, name: menu B}]
it('case 1', async () => {
var promotion = [{id:'P1', name:'promotion 1'}]
var result = await applyPromotion(menu, promotion)
expect(result['discountType']). toEqual('1')
});
it('case 2', async () => {
var promotion = [{id:'P2', name:'promotion 2'}]
var result = await applyPromotion(menu, promotion)
expect(result['discountType']). toEqual('2')
});
})
运行测试后,“案例 2”的结果将返回“案例 1”的结果。
我已经更改为使用mockReturnValueOnce 作为结果,但它也不起作用。
PS。我有另一个测试文件,其格式与上面的示例相同,而且效果很好。
你们能告诉我我的代码有什么问题吗?
【问题讨论】:
-
由于您没有说明您使用
mockReturnValueOnce的方式/位置,因此很难想象您可能做错了什么 -
起初,我以为是变量结果没有更新的原因。所以,我尝试在得到结果之前使用
mockReturnValueOnce。但实际上,这不是根本原因:(