首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单元-测试剩余-驱动角应用程序

单元-测试剩余-驱动角应用程序
EN

Stack Overflow用户
提问于 2017-10-18 14:51:48
回答 1查看 279关注 0票数 1

我最近升级了我的角应用程序的角包,包括升级:

  • 来自4.0.0 => 4.4.5的所有@角/*包
  • @角-redux/ 6.1.0 => 6.5.7存储包

4.0.0和NgRedux 6.1.0中,这过去是工作的:

代码语言:javascript
复制
store = new NgRedux<IAppState>(null);
store.configureStore(reducerConfig, undefined);
// etc.

但显然,他们制造了NgReduxabstract。因此,如果出现以下异常,我的单元测试将失败:Cannot create an instance of the abstract class 'NgRedux'.

我试图通过使用测试剩余-测试简单操作上建议的自定义模拟类来修复我的测试

代码语言:javascript
复制
class MockRedux extends NgRedux<any> {
  constructor() {
    super(null);
  }
  dispatch = () => undefined;
}

但是,由于没有实现所有具有以下错误的抽象成员,此操作失败:

[ts] Non-abstract class 'MockRedux' does not implement inherited abstract member 'configureSubStore' from class 'NgRedux<any>'.

因此出现了一个问题:我如何在我的角度规格中正确地模拟带有NgRedux的redux存储?

EN

回答 1

Stack Overflow用户

发布于 2017-10-19 12:09:32

我通过用NgRedux替换RootStore来解决这个问题

代码语言:javascript
复制
// without zone
let store = new NgRedux<IAppState>(null);

// with zone
let store = new RootStore<IAppState>(new NgZone({enableLongStackTrace: true}));

这是因为RootStore是来自抽象NgRedux类的承继,如它们的repo中所示:

代码语言:javascript
复制
// store/src/components/root-store.ts
export class RootStore<RootState> extends NgRedux<RootState> {
  private _store: Store<RootState>;
  private _store$: BehaviorSubject<RootState>;

  constructor(private ngZone: NgZone) {
    super();
    // etc.
  }
  //etc.
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46813126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档