【问题标题】:Unit test for private method in angular2 with service injection使用服务注入对angular2中的私有方法进行单元测试
【发布时间】:2017-07-23 18:21:16
【问题描述】:

我有一个私有方法,我在其中调用服务中定义的方法来获取一些数据。该服务是一个类

Angular2 中的一些代码

private _data: DataService;
private _result: any;

private _getData() {
    this._data.fetchingDetails('userID', (res) => {
        this._result = res;
    });
}

如何在 Jasmine 中测试这段代码

【问题讨论】:

标签: angular unit-testing typescript jasmine


【解决方案1】:

取决于您是否想做一些黑客攻击来绕过它是一种私有方法的事实,请查看 Makoto 的评论。

但通常你会通过测试使用私有方法的公共方法来测试它,它必须在你的类的某个地方被调用。例如

export class Example 1 {
   constructor() {}
   public foo() {
      this.bar()
   }
   private bar() {
     ... do awesome stuff ...
   }
}

在这里,您将测试 foo() 类是否具有预期的行为,包括 bar() 中的行为。

在您的示例中,如果您想验证 data.fetDetails 是否被调用,则对其进行监视并测试您与 foo 的等效性。

【讨论】:

    猜你喜欢
    • 2018-06-04
    • 1970-01-01
    • 2023-03-20
    • 2016-04-11
    • 1970-01-01
    • 2022-11-30
    • 2016-12-14
    • 2010-09-20
    • 1970-01-01
    相关资源
    最近更新 更多