【问题标题】:How to test AngularJs global variable using Jasmine如何使用 Jasmine 测试 AngularJs 全局变量
【发布时间】:2020-08-17 01:33:42
【问题描述】:

我有一个场景,我需要使用 Karma Jasmine 测试控制器方法。场景很简单,

角度代码

var globalVariable = "startEapplication";    
$scope.myMethod = function(request, response) {
                    if(globalVariable === "startEapplication" && request.customer) {

现在,我需要为负面场景测试传递 null 而不是 startEapplication。基本上我需要从 Karma Jasmine 模拟全局变量。

有没有办法从 Karma Jasmine 修改 Angular 全局变量。

【问题讨论】:

    标签: javascript angularjs karma-jasmine


    【解决方案1】:

    首先,globalVariable 不是一个角度全局变量,由于它是在控制器内部声明的,因此您将无法从规范本身访问。

    如果你想涵盖负面情况,我曾经按照以下方法测试私有变量。

    要测试负面情况,您可以声明一个单独的私有对象并将其与范围相关联。

    例子:

    // Add the comment saying this should be only be accessed for unit test puropse
    $scope._private_ = {
        globalVariable : "startEapplication"
    }
    

    您还需要按照比较的方式进行更改,以便规范也指向相同的对象,例如

    if($scope._private_.globalVariable === "startEapplication")
    

    现在你可以在你的规范中模拟这个全局变量了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-12
      • 1970-01-01
      相关资源
      最近更新 更多