微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Angular – Karma – ngrx – 没有商​​店提供商

在我的一个单元测试中,我正在尝试模拟@ ngrx / store.我已经在另一个spec文件中成功使用了该技术,但是当我尝试在这个中使用它时,我收到一个注入错误,说没有商店提供商!以下是spec文件中的相关代码

beforeEach(async(() => {
  const emptyState = { opportunities: { list: { items: [],page: 1,total: 0 } } };
  const mockStore = new MockStore<MockAppState>(emptyState);

  Testbed.configureTestingModule({
    declarations: [
      OpportunityListComponent,FilledArrayPipe
    ],imports: [
      NgFilterListModule,FormsModule
    ],providers: [
      { provide: OpportunityApi,useValue: apiStub },{ provide: Store,useValue: mockStore },{ provide: Router,useValue: routerStub }
    ]
  }).compileComponents();
}));

beforeEach(() => {
  store = fixture.debugElement.injector.get('Store');
});

此组件与成功使用MockStore类的组件之间的唯一区别是此组件在与AppModule分开的自己的模块中延迟加载.但是,我尝试在该模块中导入StoreModule以及在Testbed导入中包含StoreModule,两者都无济于事.

解决方法

结果我的问题是我在fixture.debugElement.injector.get(‘Store’)调用中引用了Store.删除引号修复了我的问题.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐