异步执行测试

由于服务以异步方式操作,因此异步地执行服务的整个单元测试可能是有用的。 这可以加快完成整个测试周期所需的总时间,因为特定的单元测试不会阻止其他测试的执行。 我们可以设置我们的单元测试来返回一个promise,它将根据测试的结果来返回成功或失败。

describe('verify search', () => {
  it('searches for the correct term',
    fakeAsync(inject([SearchWiki, MockBackend], (searchWiki, mockBackend) => {
        return new Promise((pass, fail) => {
          ...
        });
    })));
});

不是只使用inject,我们使用fakeAsync来包装它并完成依赖并在异步过程中执行测试。 使用fakeAsync需要我们返回一个Promise,我们通过调用pass或者fail来解决我们的测试的competition ,这取决于我们测试的结果。

下一节:对Redux进行单元测试是一个非常简单的过程,原因有两点:

Reducers 是一种纯粹的函数,适合测试。
Actions 触发Redux系统中的更改。只有两种类型的动作:同步(测试相当简单)和异步(涉及的东西稍多一些)。

下面的示例会为您测试Redux应用程序打下坚实的基础。