Angular 2单元测试减速器保持变化

时间:2017-07-01 00:44:24

标签: angular unit-testing

我开始学习Angular 2和单元测试,我在测试reducers时遇到了一些问题,然后尝试测试同样使用reducer的组件。

问题是,因为我正在测试调度功能是否正常,所以商店所做的更改会持续存在并使其他测试失败。

这是我的代码:

reducer.spec.ts

it('should dispatch action DATA_FETCH', () => {
    const mockData = [
        { id: 0, name: 'Name 01' },
        { id: 1, name: 'Name 02' }
    ];

    const mockInitial = {
        ..._data,
        customers: mockData
    };

    _store.dispatch({
        type: DATA_FETCH,
        payload: mockData
    });

    expect(_data).toEqual(mockInitial);
});

// This test pass

然后我尝试测试从这个商店共享相同数据的组件,如下所示:

it('should have initial value array to be empty', () => {
    expect(component.customers).toEqual([]);
});

但我一直收到这样的错误:

  

预期[对象({id:0,名称:'名称01'},{id:1,名称:'名称02'})]等于[]

在我完成该部分的测试后,有没有办法销毁/清理商店?

我认为我收到此错误的原因是因为我使用的是TestModule,它基本上是一个"克隆"我的主要模块的模块,这样我就不需要为我正在运行的每个测试多次声明相同的事情。例如,商店,而不是在我的每个测试中配置它,我在这个TestModule上配置它然后只在我的单元测试中导入它。也许这就是原因,但我不知道如何解决它。

0 个答案:

没有答案