2016-04-07 119 views
0

這裏是我的代碼:茉莉花測試JavaScript功能URL

var getCode = function(code) { 
if (code = (new RegExp('[?&]' + encodeURIComponent(code) + '=([^&]*)')) 
     .exec(location.search)) 
    return decodeURIComponent(code[1]); 
}; 

$(document).ready(function() { 
var code = getCode("code"); 
//some other function 

這裏是我的測試代碼:

it("check the code value of url", function() { 
    window.location.search = "https://test.com?&code=testParam"; 
    var code = getCode("code"); 
    expect(code).toEqual("testParam"); 
}); 

每當我嘗試運行此茉莉測試顯示的RuntimeException或者說hte變量getCode未定義。無論如何,我可以設置位置網址並進行測試嗎?

非常感謝您的幫助

回答

1

我認爲你應該做的不同。 不要從瀏覽器中獲取網址。而是將url作爲參數傳遞給函數。這樣你就可以對一個url進行硬編碼併發送給測試。

var getCode = function(code, url) { 
    if (code = (new RegExp('[?&]' + encodeURIComponent(code) + '=([^&]*)')) 
    .exec(url)) 
    return decodeURIComponent(code[1]); 
}; 

然後運行測試,如下所示。

it("check the code value of url", function() { 
var url = "https://test.com?&code=testParam"; 
var code = getCode("code", url); 
expect(code).toEqual("testParam"); 
}); 

希望它有幫助。

+0

我想獲取當前頁面的網址。無論如何要這樣做? – user6090970

+0

你只能得到運行jashmine測試用例的頁面的url(使用window.location.href)。 – rajesh

+0

明白了。但是它仍然顯示在我的測試用例中找不到變量getCode。有沒有理由不讀這個變量? – user6090970