我有一個角度應用程序(使用AngularAMD/RequireJS),並將設計轉換爲使用角度材質。我有一個使用md-svg-src
的md-icon
的工具欄指令。單元測試失敗「TypeError:使用md-icon時無法讀取未定義的屬性」元素「
故障運行toolbar-directive_test.js
文件。
起初它一直抱怨「Unresolve GET request images/icon.svg」。我決定測試設置中使用:
$httpBackend.whenGET(/\.svg$/).respond('');
現在如果我運行使用fdescribe(...)
所有的測試都通過了該測試文件。
但是,如果我運行所有應用程序測試(在該工具欄測試文件中沒有fdescribe
),它們由於md圖標而出現故障。我得到的錯誤出現在另一個測試文件上:
TypeError: Cannot read property 'element' of undefined
堆棧跟蹤沒有給出什麼導致它的任何指導。只提到angular-mocks.js
,然後在出現錯誤的測試文件中隨機斷言。如果我的文件xdescribe
顯示element of undefined
錯誤,則下一個測試文件將失敗並顯示此錯誤。
如果我在toolbar-directive_test.js
文件(使用md-icon
的文件)上使用xdescribe
,則所有測試都通過。
如果我運行包括toolbar-directive_test.js
文件在內的所有測試,但是我從模板中刪除了所有md-icon
實例,所有測試都通過了。
我試過包括ngMaterial-mocks
包在我的測試中,並沒有做任何事情。但總的來說,我沒有使用該包(但我使用的是ngMocks
)。
關於如何調試的建議?
這只是一種猜測,但也許'undefined'指SVG本身。嘗試傳回'',看看它是否有什麼不同。 –
@Widget是的工作,謝謝。 – ngDeveloper