在Jest和普通JavaScript中针对DOM进行测试
假设我有一个组件,当调用在Jest和普通JavaScript中针对DOM进行测试,javascript,dom,jestjs,Javascript,Dom,Jestjs,假设我有一个组件,当调用render()时,该组件被渲染并装载到DOM节点上: render() { // Render the HTML elements const content = renderParent(); // Mount onto the DOM element with id `app`; let element = document.getElementById('app'); element.innerHTML = ''; element.
render()
时,该组件被渲染并装载到DOM节点上:
render() {
// Render the HTML elements
const content = renderParent();
// Mount onto the DOM element with id `app`;
let element = document.getElementById('app');
element.innerHTML = '';
element.appendChild(div);
}
renderParent() {
const div = document.createElement('div');
div.classList.add('foo', 'bar');
div.innerHTML = renderChild();
return div
}
renderChild() {
const span = document.createElement('span');
span.innerText = 'ayyy lmao';
return span;
}
export { render }
(上述内容过于简单。实际上,嵌套子组件的层次分布在多个文件中,元素更为复杂)
我不熟悉使用Jest和JavaScript,我想使用Jest编写一些测试
我可以很容易地测试renderParent()
和renderChild()
的行为,因为它们返回HtmleElement对象,并且我可以对各种属性进行断言
但是如何测试顶级render()
方法的行为呢?这不会返回任何内容,而是将其内容呈现到DOM中