단위 테스트를하고 싶습니다. 내 구성 요소에서 내 저장소를 업데이트하기 위해 @ ngrx/store 및 rxjs를 사용하고 있습니다. 그렇게하기 위해 상점을 구독하고 탈퇴합니다. 내 단위 테스트는 내가 제대로 내 가게와 이벤트 이미 터를 조롱하는 방법을 찾을 수 없습니다입니다@ ngrx/store를 조롱하는 방법?
TypeError: undefined is not an object (evaluating 'this.store.unsubscribe') in config/spec-bundle.js
와 함께 실패합니다.
app.component.ts :
ngOnDestroy() {
// unsubscribe the observable
this.userStore.unsubscribe();
}
app.component.spec.ts :
여기에 다음 줄 수 있습니다
export class MockStore extends Subject<fromRoot.State> implements Store <fromRoot.State> {}
: 나는 가게를 조롱하는 방법
구성 방법 :
TestBed.configureTestingModule({
imports: [
FormsModule,
ReactiveFormsModule,
StoreModule.provideStore(reducer)
],
declarations: [LoginComponent],
providers: [
BaseRequestOptions,
MockBackend,
{ provide: AuthService, useValue: authServiceStub },
{ provide: LoginService, useValue: loginServiceStub },
{ provide: LoggerService, useValue: loggerServiceStub },
{
provide: Http, useFactory: (backend: ConnectionBackend,
defaultOptions: BaseRequestOptions) => {
return new Http(backend, defaultOptions);
}, deps: [MockBackend, BaseRequestOptions]
},
{ provide: Router, useClass: MockRouter }
]
})
자세한 정보가 필요하면 알려주십시오. 미리 감사드립니다.
답변 해 주셔서 감사합니다. 나는 당신이하는 방법을 시도했지만 여전히 오류가 있습니다 ... 제가 다른 대답에서 말했듯이, 저는 이미 Subscription 객체에 대해 수신 거부를합니다. – Megan