【发布时间】:2023-03-06 11:08:01
【问题描述】:
这是我的代码块:
it("saving flow (entering into edit mode and saving) works correctly", (done) => {
const wrapper = mount(
<Root>
<DictionaryRooms/>
</Root>
);
moxios.wait(() => {
wrapper.update();
wrapper.find('.btn-dark').at(1).simulate('click');
setTimeout(() => {
expect(wrapper.find('.editField span').at(0).text().trim()).toEqual(jsonDataRooms.data[0].name);
}, 1000);
done();
wrapper.unmount();
})
});
如您所见,我正在尝试模拟单击按钮,这在我的应用程序中会导致从后端服务器下载一些新数据。这些数据将在我的后端数据进入后立即可见,然后将其显示。因此,在我的请求完成后,我再次尝试检查新数据是否是我所期望的。 显然,点击后需要时间下载,过一会就会显示出来。这就是为什么我需要像 setTimeout 这样的东西。但这行不通。不知道为什么...
感谢您的任何建议。
【问题讨论】:
-
你尝试过类似 jest.useFakeTimers(); jestjs.io/docs/en/timer-mocks.html ?
-
我正在阅读有关此的文档,但仍无法将其应用于我的代码
-
在我的应用程序中导致从后端服务器下载一些新数据 - 它不应该。应该在单元测试中模拟请求。