簡體   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