Angular 6 TestBed设置'it'测试中模拟/间谍的返回值

时间:2018-11-27 10:59:21

标签: javascript angular testing angular6 testbed

我目前一直在尝试对服务进行模拟/存根/间谍,以便可以为许多测试将返回值设置为其他值。

例如

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();

  }));

谢谢

0 个答案:

没有答案