javascript - 如何强制 Jest 单元测试断言在测试结束之前执行?

标签 javascript reactjs unit-testing redux jestjs

我在我的 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/

相关文章:

unit-testing - 何时使用单元测试框架(相对于仅使用断言)?

javascript - 动态内容的内容溢出

javascript - 如何让我的代码不那么慢 (JavaScript) - 最大素数

javascript - Bootstrap 模态表单在验证之前关闭

javascript - 如何测试在 componentDidMount 中设置 React Component 状态的异步调用

javascript - 如何在 React-Quill 中设置字符长度

javascript - 类型错误 : Cannot read properties of undefined (reading 'preventDefault' ) React

unit-testing - 如何在 CI 管道中对使用不属于 git 远程的模型文件的函数进行单元测试?

javascript - AngularJS Jasmine 服务模拟

javascript - jQuery DataTables 仅过滤特定列