角服务单元测试-是否伪造嵌套方法?

时间:2019-12-05 20:40:31

标签: angular unit-testing testing service mocking

我有一个非常简单的问题。

如果我有一种这样的服务方法

generateObjectBasedOnName(name: string): SomeObject {
  if(this.isNameValid(name)) {
    const {namePart1, namePart2} = this.getNameParts(name);
    const baseObjectOne = this.getBaseObjectOne(namePart1);
    const baseObjectTwo = this.getBaseObjectTwo(namePart2);

    baseObjectOne.someDataNeededToSetHere = false;
    baseObjectTwo.someDataNeededToSetHere = true;

    return this.generateSomeObject(baseObjectOne, baseObjectTwo);
  }

  return null;
}

我应该在单元测试中使用该方法中使用的伪造方法,还是应该让它们正常执行?

谢谢您的回答:)

1 个答案:

答案 0 :(得分:0)

单元测试的目的是验证特定软件单元(在您的情况下是您的服务类别)是否按设计执行。因此...

  • 您不能模拟被测单元的个别方法。
  • 您可能应该模拟注入被测单元的类的方法。