我有一个DataService负责我的API调用-我试图开玩笑地模拟api调用,但似乎不起作用。我不确定自己在做什么错-我的DataService似乎未定义。
这是函数
it('Data Api end point called with corrent studyId', () => {
jest.mock(DataService);
DataService.fetchStepData() = jest.fn()
CellStepManagementOperations.getStepData(5);
expect(DataService.fetchStepData).toHaveBeenCalledWith(5);
});
这是我编写的测试-我很确定自己在嘲笑错误
pubspec.yaml
答案 0 :(得分:0)
我认为这里的问题是,您正在尝试同步来测试异步动作创建者。因此,您的expect
函数不会等待getStepData
完成运行。
我不得不执行与您尝试执行的操作非常相似的操作,并且我使用了一个名为redux-testkit的库。请参阅有关使用服务here测试异步操作创建者的部分。您甚至可以为您的API服务设置模拟返回值,在测试时,我发现这非常有用。
使用该库,您可以await
让getStepData
异步操作创建者在运行expect
函数之前完成。
您将不得不使用您的代码,但是看起来可能像这样:
it('Data Api end point called with corrent studyId', () => {
jest.mock(DataService);
DataService.fetchStepData() = jest.fn()
const dispatches = await Thunk(CellStepManagementOperations.getStepData).execute(5);
expect(DataService.fetchStepData).toHaveBeenCalledWith(5);
});