你可能幫我嘲笑商店嗎? 我見過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,這不工作了 –