-1

有没有办法使用角度的“测试库”框架测试私有方法或声明?

这是我的代码:

priave name = "somename"
 private setLang(url: string, fetch: boolean) {
    switch (url) {
          case '/SSB/mngt':
              this.SSB.Id = 'newSSb';
              this.pageId = 'ManageEvent';
            break;
          case '/SSB/mngt/add':
            this.SSB.Id = 'newSSb';
            this.pageId = 'ManageEventAdd';
          break;
          case '/SSB/mngt/view':
            this.SSB.Id = 'newSSb';
            this.pageId = 'ManageEventView';
          break;
          case '/SSB/mngt/approve':
            this.SSB.Id = 'newSSb';
            this.pageId = 'ManageEventApprove';
          break;
          default:
            this.SSB.Id = 'setupConfig';
            this.pageId = 'ViewProgMgmt';
            break;
    }

    this.data = [];
    this.data.push(this.selectedLang);
    this.data.push(this.SSB.Id);
    this.data.push(this.pageId);
    this.data.push(fetch);
    this.langId.emit(this.data);

  }

私有name声明和setLang方法都不可用,规范文件。什么是正确的处理方式。看来,除非我为我的两个私有声明编写测试用例,否则我无法达到 100% 的覆盖率。

4

1 回答 1

1

我们不会使用测试库测试私有方法,因为这些方法可能会改变并且会无缘无故地破坏您的测试。如果您想对这些行进行代码覆盖,则必须通过 HTML 从外部对其进行测试。

这将确保如果实现细节随时间发生变化,您的测试仍然可以通过并让您对自己编写的代码充满信心。

于 2020-03-16T17:12:45.003 回答