2016-11-18 29 views
0

我正在學習茉莉花。試圖測試下面的代碼。如何在茉莉花中測試函數表達式

不知道如何在茉莉花中創建personModule對象以及如何使用和測試它。任何幫助都會很棒。

window.onload = function() { 
 
    var module = personModule; 
 
    module.init(); 
 
} 
 

 
var personModule = (function (module) { 
 
    module.getName = function() { 
 
     alert("my name" + "is Xyz"); 
 
    } 
 

 
    module.init = function() { 
 
     alert("in init"); 
 
    } 
 
    return module; 
 
})(personModule||{});

是否有人可以幫助我在此

感謝

回答

1

我不認爲有特定的茉莉花任何在你的代碼。它是JS中的常規函數​​。

此外,您的方法沒有任何測試,因爲您只有函數內的警報。

你可能想測試你的getName是否返回一些東西。像

getName: function(){ 
    return "some name"; 
} 

然後你可以斷言和測試。

assert(getName()).toBe("some name"); 

在你的代碼中,我沒有看到需要您使用IIFE與personModule || {}

您可以像下面那樣重構代碼,使其成爲可測試的模塊。

window.onload = function() { 
 
    personModule.init(); 
 
} 
 

 
var personModule = (function() { 
 
    var module = {}; 
 
    module.getName = function() { 
 
    return "my name is Xyz"; 
 
    } 
 

 
    module.init = function() { 
 
    alert("in init"); 
 
    return true; 
 
    } 
 
    return module; 
 
})();

你可以有你的茉莉測試如下。

describe("Test Person Module", function() { 
    it("Name to return default value", function() { 
    expect(personModule.getName()).toBe("my name is Xyz"); 
    }); 

    it("Init to be Succesful", function() { 
    expect(personModule.init()).toBe(true); 
    }); 
});