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

标签 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;
}

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

感谢任何答案:)

最佳答案

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

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

关于Angular 服务单元测试 - 是否伪造嵌套方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59202946/

相关文章:

testing - 您如何使自动化测试与测试计划保持同步

java - 在 Robotium 中使用资源 ID

ruby-on-rails - 为什么我的 rspec 测试失败了?

javascript - 如何使用 Renderer2 在 Angular 中设置 native 元素的值?

javascript - Node CLI 单元测试

unit-testing - 最小起订量新手测试设置

c - C 中单元测试的自动生成器

javascript - TypeScript - 一次又一次调用 API 端点,直到得到所需的结果 - 递归还是循环?

angular - 在 Angular 2 中使用 D3.js

angular - 奇怪的行为动态呈现输入类型复选框的类型 Angular 2+