如何为 NgRedux 编写测试用例

时间:2021-02-09 14:58:27

标签: angular junit karma-jasmine

我是 Angular 单元测试用例编写的初学者。我想为以下代码段编写一个单元测试用例。我该怎么写。

<块引用>

this.ngRedux.getState().message.data

2 个答案:

答案 0 :(得分:0)

根据这个@ngrx page,我会选择:

store = TestBed.inject(MockStore);
store.getState().message.data
describe('Auth Guard', () => {
  let guard: AuthGuard;
  let store: MockStore;
  const initialState = { loggedIn: false };
 
  beforeEach(() => {
    TestBed.configureTestingModule({
      imports: [ // any modules needed
      ],
      providers: [
        AuthGuard,
        provideMockStore({ initialState }),
        // other providers
      ],
    });
 
    store = TestBed.inject(MockStore);
    guard = TestBed.inject(AuthGuard);
  });
 
  it('should get data state', () => {
    const expected = cold('(a|)', { a: false });
    store.setState({ message : {data : [1, 3, 7]} });
    expect(store.getState().message.data).toEqual([1, 3, 7]);
  });
});

答案 1 :(得分:0)

我得到了这个问题的解决方案。我们可以写spyOn如下

spyOn(MockNgRedux.getInstance(), 'getState').and.returnValues({
            message: {
                data: {} 
            } 
 });

这个方法对我有用。