我在Providers数组中有以下内容。
{
provide: EnrolmentService,
useValue: {
swapToken: jasmine.createSpy('swapToken')
}
}
除了在一个需要实际调用swapToken((方法的测试用例中,我到处都需要Enrollment服务的jasmine spy for swapToken方法。
有人能建议如何为特定的单元测试覆盖上述提供者吗?
很抱歉我没有彻底阅读代码。所以我假设您发布的提供商是在configureTestingModule
方法上的spec
文件中指定的
TestBed.configureTestingModule({
declarations: [...],
providers: [{
provide: EnrolmentService,
useValue: {
swapToken: jasmine.createSpy('swapToken')
}
}]
});
或您正在特殊文件模块中导入的...TestingModule
@Injectable()
public class EnrollmentTestingService {
}
@NgModule({
providers: [{
provide: EnrollmentService,
useClass: EnrollmentTestingService
}]
})
public class EnrollmentTestingModule {
}
因为您正在使用jasmine
创建mock。
我认为你所要做的就是将这个EnrollmentTestingModule
导入到几乎所有的测试模块(规范(中,在一个例外的规范文件中,只需指定提供者
TestBed.configureTestingModule({
declarations: [...],
providers: [{
provide: EnrolmentService,
useValue: {
swapToken: /* something else here */
}
}]
});