我在我的 react native 应用程序中进行了以下测试,但测试应该失败(因为返回的操作不等于我在 expectedActions
中放入的操作。我的猜测是它正在通过,因为expect
测试在测试完成后运行。
如何强制测试等待,直到 promise 完成并且预期测试运行?还有其他方法可以做到这一点吗?
describe('authorize actions', () => {
beforeEach(() => {
store = mockStore({});
});
it('should create an action to signify successful auth', () => {
auth.authorize.mockImplementation(() => Promise.resolve({"something": "value"}));
const expectedActions = [{"type":"AUTHORIZE_RESPONSE","payload":{"something":"sdklfjsdf"}}];
authorizeUser(store.dispatch, store.state).then(() => {
expect(store.getActions()).toEqual(expectedActions);
});
})
});
最佳答案
好吧,看起来我刚刚错过了一些 Jest 文档 - 如果您返回 promise ,即 return auth.authorize.mockImplementation(() => Promise.resolve...
那么 Jest 将会等到它完成后再继续。
关于javascript - 如何强制 Jest 单元测试断言在测试结束之前执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50920385/