unit-testing - 私有(private)方法 使用 Jasmine 进行单元测试

标签 unit-testing angularjs jasmine

我正在使用 jasmine 为 Angular 应用程序编写测试用例。但是许多内部方法在服务中被声明为私有(private)。

例子:

App.service('productDisplay', function(){
    var myPrivate = function(){
        //do sth
    }
    this.doOfferCal = function(product, date){
        //call myPrivate
        //do sth too
        return offer;
    }
});

使用 jasmine 可以直接对“doOfferCal”进行代码测试,但我也想为 myPrivate 编写单元测试。

我该怎么做?

提前致谢。

最佳答案

谢谢jabko87。

此外,如果要传递参数,请使用以下示例:

const myPrivateSpy = spyOn<any>(service, 'transformNative').and.callThrough();
 myPrivateSpy.call(service, {name: 'PR'});

注意:这里 service 是 Class,transformNative 是私有(private)方法, {name: 'PR'} 传递一个对象参数

关于unit-testing - 私有(private)方法 使用 Jasmine 进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17885635/

相关文章:

javascript - 如何对包含 DOM/jquery 选择器的 Angular 1 Controller 进行单元测试?

javascript - 引用错误: Can't find variable: d3

c# - 什么是等同于在 Rhino Mocks 中使用 Ordered() 的 AAA 语法

firebase - 如何使用 Firebase 测试 Flutter 应用程序?

javascript - 如果数组值已经存在,则删除 JavaScript

javascript - angular.identity() 有什么用例的好例子吗?

javascript - ng-click事件不适用于angular js中的链接

unit-testing - Sauce Labs 替代品

unit-testing - 单元测试数据模型 : related entities

javascript - 引用错误 : module is not defined in jasmine