我有一段代码正在做一些DOM操作调用函数,如appendChild和RemoveChild。
所以,假设我的组件有一个带id属性的div标签
<div id="header"></div>
在我的组件中的一个函数中,我抓住了所提到的标签并附加了一些内容
this.$.header.appendChild('<div>Hello</div>')
在我的单元测试中,我使用负责的组件创建测试夹具,然后在内部创建一个类似的间谍
var testSpy = sinon.spy(Polymer.dom($el.$.header), 'appendChild')
这是在我的设置中完成的。然后在我的阻止内部,我检查要调用的间谍。但它没有被调用。虽然正在调用appendChild,但我也可以正确地看到dom。但是在期望它不起作用。有帮助吗?
所以,我能够自己解决这个问题。我做的唯一不同的事情是我在创建间谍时抓住我的DOM的方式:
var testSpy = sinon.spy($el.querySelector('#header'), 'appendChild')
在那之后,我的间谍开始被召唤。