我剛開始聚合物。我試圖單元測試有依賴關係的自定義元素,我想假冒/模擬這些。 我發現了Scott Miles關於如何模擬core-ajax實現的建議。我認爲我可以很容易地遵循這種模式,但只有當我的元素沒有導入要被嘲笑的元素(在這種情況下爲核心ajax)時,這纔會起作用。 如果確實導入它,那麼當測試嘗試運行時,我得到聚合物單元測試嘲笑依賴關係
'未捕獲的NotSupportedError:未能在'Document'上執行'registerElement':類型'core-ajax'的註冊失敗。具有該名稱的類型已被註冊。
如果我可以做一些像document.unregister core-ajax元素,並在我的測試中再次導入它,Id是一個更快樂的開發! 聚合物很棒,但如果我不能單元測試它,那麼它會帶來很大的風險(至少在構建需要維護/更改的應用程序時)
你們是如何解決這個問題的?我一直在挖掘Polymer和PolymerLab元素回購,並且大多數都缺乏測試。到目前爲止,我還沒有找到如何做到這一點的很多參考。
感謝您的幫助!
聖地亞哥
斯科特的建議是:
代替進口核心AJAX /核心ajax.html的,創建自己的核心AJAX元素。
<polymer-element name="core-ajax" attributes="response">
<script>
Polymer('core-ajax', {
attached: function() {
this.response = ['a', 'b', 'c'];
}
});
</script>
</polymer-element>
很明顯,這只是一個例子,實際的實現取決於期望的模擬行爲。
這只是解決它的一種方法,還有很多其他的方法。我很想聽聽你方便的地方。
同上。雙重錯誤包括痛苦。不知道如何解決這個問題呢。 – David 2014-10-29 15:29:47
被引用的解決方案是從https://stackoverflow.com/questions/24531473/how-do-i-mock-polymer-core-ajax-for-unit-testing – dskrvk 2016-04-12 22:34:52