【发布时间】:2016-12-15 07:44:32
【问题描述】:
我有两个模拟服务:
@Injectable()
class UserRegistrationServiceMock {
registerBasicDetails(details: UserRegistrationDetails) {
let response: UserRegistrationResponse = new UserRegistrationResponse();
response.success = false;
response.userMessage = 'Test Message';
return Observable.of(response);
}
registerAdvancedDetails() {
}
}
@Injectable()
class UserRegistrationServiceSuccessMock {
registerBasicDetails(details: UserRegistrationDetails) {
let response: UserRegistrationResponse = new UserRegistrationResponse();
response.success = true;
response.userMessage = 'Test Message';
return Observable.of(response);
}
registerAdvancedDetails() {
}
}
在我的 Jasmine 测试中,我在“beforeEachProviders”和“beforeEach”方法中提供了它的定义:
beforeEachProviders(() => [
provide(UserRegistrationService, { useClass: UserRegistrationServiceMock })
]);
beforeEach(inject([UserRegistrationService], (_userRegistration))
那么在我的实际测试中我可以参考用户注册服务来初始化组件:
it('should create an instance', () => {
let component: BasicRegistrationComponent =
new BasicRegistrationComponent(null, formBuilder, promptWindow, userInfo, translator, userRegistration);
expect(component).toBeTruthy();
});
这里的问题是如何为我的组件提供服务的第二个模拟实现?
【问题讨论】:
标签: angular typescript jasmine