我使用AngularJs構建了一個項目,並使用Karma和茉莉花進行了單元測試。 Angular項目中我的一個控制器需要引用socket.io來與服務器傳輸數據。我寫了這個控制器的單元測試用例。 Ana將'socket.io.js'文件添加到'karma.conf.js'中,當我測試它與業力,一個錯誤拋出: Uncaught TypeError: Cannot read property 'transport' of undefined
,這個錯誤拋出在卡瑪茉莉花節點包adapter.js中的以下語句:「在karma-jasmine中無法讀取未定義的屬性'transport'單元測試
var getCurrentTransport = function() {
// probably running in debug.html (there's no socket.io)
if (!window.parent.io) {
return null;
}
var location = window.parent.location;
return window.parent.io.sockets[location.protocol + '//' + location.host].transport.name;
};
我不會退出明白這是什麼意思的代碼,我發現window.parent.io.sockets
是一個空的對象,所以又增加了語句返回空,因此它不會引發錯誤。
var location = window.parent.location;
if(!window.parent.io.sockets[location.protocol + '//' + location.host]){
return null;
}
return window.parent.io.sockets[location.protocol + '//' + location.host].transport.name;
我不確定這種改變是否正確?任何人都知道如何解決這個問題?
我也遇到這個問題。你有沒有找到修復程序? – Zacho
@Zacho檢查我的答案 –