我目前一直在尝试对服务进行模拟/存根/间谍,以便可以为许多测试将返回值设置为其他值。
例如
mockService.getCountOfItems.and.returnValue.(of(1));
// some expectations
mockService.getCountOfItems.and.returnValue.(of(0));
// some expectations
但是出于某种原因,这似乎是不可能的。我在这里真的缺少明显的东西吗?
代码:
const mockService = {
getCountOfItems: () => of(0)
};
describe('Component', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [Component],
imports: [...],
providers: [
{ provide: Service, useValue: mockService}
]
}).compileComponents();
}));
it('should enable btn when items available', async(() => {
const btn = fixture.debugElement.query(By.css('#myBtn')).nativeElement;
mockService.getCountOfItems.and.returnValue(of(1));
expect(myBtn.disabled).toBeFalsy();
}));
谢谢