我刚开始学习 Polymer。我正在尝试对具有依赖关系的自定义元素进行单元测试,并希望能够伪造/模拟这些依赖项。
我发现 Scott Miles 建议如何模拟 core-ajax 实现。我认为我可以轻松地遵循这个模式,但只要我的元素导入了即将被模拟的元素(在本例中是 core-ajax),那么当测试尝试运行时,就会出现“未捕获的 NotSupportedError: 在 'Document' 上执行 'registerElement' 失败:类型“core-ajax”注册失败。已经注册了该名称的类型。”
如果我能做一些像 document.unregister 核心-ajax 元素并在我的测试中再次导入它的事情,我会成为一个更快乐的开发者!
Polymer 是很棒的,但如果我不能对它进行单元测试,那么它就会带来重大风险(至少在构建需要维护/更改的应用程序时是如此)。
你们是如何解决这个问题的?我一直在研究 Polymer 和 PolymerLab 元素仓库,其中大多数缺乏测试。到目前为止,我还没有找到太多关于如何进行测试的参考资料。
感谢您的帮助!
Santiago
Scott 的建议是:
不要导入 core-ajax/core-ajax.html,而是创建自己的 core-ajax 元素。
显然,这只是一个例子,实际的实现取决于所需的模拟行为。
这只是其中一种解决方法,还有许多其他方法。我很想听听你认为哪个方便(不方便)。
我发现 Scott Miles 建议如何模拟 core-ajax 实现。我认为我可以轻松地遵循这个模式,但只要我的元素导入了即将被模拟的元素(在本例中是 core-ajax),那么当测试尝试运行时,就会出现“未捕获的 NotSupportedError: 在 'Document' 上执行 'registerElement' 失败:类型“core-ajax”注册失败。已经注册了该名称的类型。”
如果我能做一些像 document.unregister 核心-ajax 元素并在我的测试中再次导入它的事情,我会成为一个更快乐的开发者!
Polymer 是很棒的,但如果我不能对它进行单元测试,那么它就会带来重大风险(至少在构建需要维护/更改的应用程序时是如此)。
你们是如何解决这个问题的?我一直在研究 Polymer 和 PolymerLab 元素仓库,其中大多数缺乏测试。到目前为止,我还没有找到太多关于如何进行测试的参考资料。
感谢您的帮助!
Santiago
Scott 的建议是:
不要导入 core-ajax/core-ajax.html,而是创建自己的 core-ajax 元素。
<polymer-element name="core-ajax" attributes="response">
<script>
Polymer('core-ajax', {
attached: function() {
this.response = ['a', 'b', 'c'];
}
});
</script>
</polymer-element>
显然,这只是一个例子,实际的实现取决于所需的模拟行为。
这只是其中一种解决方法,还有许多其他方法。我很想听听你认为哪个方便(不方便)。