【发布时间】:2017-08-17 08:40:31
【问题描述】:
我正在测试一个调用服务的组件。我想存根或模拟服务,以便它返回一个布尔值,并且订阅函数的回调/成功函数中的组件变量设置为这个模拟的布尔值。因此,在我的组件中,从我的组件中调用了 welcomeService 中的 getBusinessDetails 方法,这就是我遇到问题的地方。我希望isReturning值被伪造,然后设置相应的组件变量。它返回 Expecte 未定义为真。
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);
});
})
【问题讨论】:
标签: angular typescript jasmine