1
私はサービスを呼び出すコンポーネントをテストしています。ブール値を返すようにサービスをスタブまたはモックしたいのですが、subscribe関数のコールバック/成功関数にあるコンポーネント変数は、この模擬ブール値に設定されています。だから私のコンポーネントでは、私のコンポーネントからwelcomeServiceのgetBusinessDetailsメソッドを呼び出します。これが問題の原因です。 isReturning値を偽装して、対応するコンポーネント変数を設定する必要があります。それは、真実であると期待される期待値を返します。Observableの角度2のジャスミンテスト
public getBusinessDetails(): void {
this.welcomeService.getBusiness(this.businessId, 2017)
.subscribe((isReturning) => {
this.isReturningApplicant = isReturning;
this.welcomeMessage = this.isReturningApplicant ? 'Welcome Back' : 'Welcome';
});
}
TestBed.configureTestingModule({
declarations: [WelcomeComponent],
imports: [ReactiveFormsModule],
providers: [{ provide: SessionService, useValue: sessionServiceStub },
{ provide: WelcomeService, useValue: welcomeServiceStub }]
});
describe('Gets details',() => {
beforeEach(() => {
sessionServiceStub = {
getSession: function() { return { businessId: 11111, agentId: 11111 } }
}
welcomeServiceStub = {
getBusiness: function() { return { subscribe:() => Observable.of(true) } }
};
})
it('get a returning customer',() => {
component.ngOnInit();
expect(component.isReturningApplicant).toBe(true);
});
})
スーパー、あなたの命の恩人と天才! – Simon
スイートを使って値を変更している、つまり変数をfalseに設定していると、これによって問題が起こるでしょうか?@peeskillet – Simon
どういう意味ですか? –