我们如何在打字稿测试用例中模拟(spyOn)方法调用?

时间:2018-10-23 06:46:08

标签: typescript angular5 testcase spyon

保存() { .....

this.saveSelectedOnes();

... }

我已经为saveSelectedOnes()方法编写了一个测试用例。在为save方法编写测试用例时,如何跳过saveSelectedOnes()方法调用?

1 个答案:

答案 0 :(得分:0)

取决于save方法是否应该返回某些内容。如果无效:

  it('should call function', () => {
    const spy = spyOn(service, 'save'); 
    expect(service.save).toHaveBeenCalled(); 
  });

如果您需要模拟save方法的返回数据:

  it('should returns correct stuff', () => {
    const spy = spyOn(service, 'save').and.returnValue({status: 'saved}); 
    expect(service.save).toHaveBeenCalled(); 
  });

如果需要在方法上测试参数:

  it('should test parameters', () => {
    const spy = spyOn(service, 'save');
    expect(service.save).toHaveBeenCalledWith('whatever parameter'); 
  });

以同样的方式,如果您需要测试是否在this.saveSelectedOnes()方法中调用了save(),也可以为该间谍创建间谍。