如何使用Jasmine Unit测试测试私有方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用Jasmine Unit测试测试私有方法相关的知识,希望对你有一定的参考价值。

我想在我的组件中调用一个私有方法

私人方法:

  private test(): void {
     return true;
  }

规格:

  it('should call test method and return true', () => {
     const response = component.test();
     expect(response).toBeTruthy();
  });

问题:

说:“属性'测试'是私有的,只能在'MyTestComponent'类中访问。”

答案

你可以用

component['test']();
// OR in your component, add
callMethod() {
  this.test();
}

但如果我是你,我会删除私有属性。在javascript中,没有私有属性,只有范围。

如果你想测试你的方法而你不能,那就意味着你应该改变你的代码,而不是让你的测试适应你的代码。这就是你如何获得简单而有效的代码。

(但又一次;这只是我对你问题的两分钱)

以上是关于如何使用Jasmine Unit测试测试私有方法的主要内容,如果未能解决你的问题,请参考以下文章

使用 Angular 和 Jasmine/Karma 的私有方法进行测试和代码覆盖

在Jasmine Unit Test中为PhantomJS配置浏览器语言

在私有方法上使用 Jasmine spyon

使用 Jasmine 对包含私有超时的单元测试 Angularjs 指令

如何为combineLatest rxjs Angular编写Jasmine Unit测试用例

如何使用jasmine使用DOM元素测试JavaScript?