你可能帮我嘲笑商店吗? 我见过this和this问题由一个有点不同的错误。 我在我的服务中使用商店,我使用调度,选择并获取商店方法。 我嘲笑了商店以下@noelmace建议,并使用下面的调度,减速和国家创造店:模拟ngrx /存储在Angular2测试
export class ObservableMock implements Observer<any> {
closed?: boolean = false; // inherited from Observer
nextVal: any = ''; // variable I made up
constructor() {
}
next = (value: any): void => {
this.nextVal = value;
};
error = (err: any): void => {
console.error(err);
};
complete =(): void => {
this.closed = true;
}
}
let _reducer: ObservableMock = new ObservableMock();
let _dispatcher: ObservableMock = new ObservableMock();
let state$: Observable<any> = new Observable<any>();
所以我Mockstore类看起来如下:
export class MockStore<T> extends Store<T> {
//as given above
constructor() {
super(_dispatcher, _reducer, state$);
}
//as given above
}
然而,当我尝试定义我在测试服下列方式它说
TypeError: _store.select is not a function
此故障是由TestedService构造以下行引起的:
constructor(private _store: Store<TabStore>) {
let tabStore: Observable<TabStore> = _store.select<TabStore>('myReducer');|
}
这里是我的测试:
beforeEach(() => {
TestBed.configureTestingModule({
imports: [
// StoreModule.provideStore({myReducer: myReducer}),
],
providers: [
{provide: Store, useClass: MockStore},
{
provide: TestedService,
useFactory: (tabStore: Store<TabStore>): TestedService=> {
return new TestedService(myStore);
},
deps: [Store]
}
]
});
});
谈到进口了也没有帮助。有没有人有想法嘲笑有什么问题?
自从上次NGRX更新4.0.0,这不工作了 –