繁体   English   中英

如何使用 Jasmine 测试 AngularJs 全局变量

[英]How to test AngularJs global variable using Jasmine

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

Angular代码

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

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

无论如何要从 Karma Jasmine 修改 Angular 全局变量。

首先, globalVariable 不是 angular 全局变量,由于它是在 controller 内部声明的,因此您将无法从规范本身访问。

如果你想涵盖我曾经遵循以下方法来测试私有变量的负面情况。

要测试负面情况,您可以声明一个单独的私有 object 并将其与 scope 关联。

例子:

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM