我刚开始聚合物。我试图单元测试有依赖关系的自定义元素,我想假冒/模拟这些。 我发现了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