2013-02-25 53 views
3

我有一個JavaScript建立類似於此:茉莉:忽略頁面重定向在測試中

function a() 
{ 
    // some logic... 
    b(); 
}; 

function b() 
{ 
    window.location = "anotherPage" 
}; 

在我的茉莉花測試,我想測試a(),但我不希望發生重定向。

我想:

spyOn(instance, 'b').andCallFake(function() { }); 

但仍然導致重定向。也許是因爲a()b()而不是茉莉花叫b()

+0

它真的是實例方法嗎?看起來'b()'函數在範圍中是簡單可訪問的,所以'a()'可以調用它。但是'spyOn'允許你將某個對象的stub函數簽名。你能給我們更多關於你的代碼的信息嗎? – zbynour 2013-02-26 10:40:55

回答

0

只是創建間諜b函數在測試。

+0

感謝您的回覆。你介意一點點嗎?我不完全明白你的意思。 – Derek 2013-02-25 18:09:34

+0

window.b = jasmine.createSpy('b'); – 2013-03-13 08:44:43

0

不知道你的情況是什麼實例。假設函數b處於全局上下文中。窗口,創建這樣的間諜:

spyOn(window, 'b');