我正在尝试使用 jest-transform-svelte 库为我的 svelte 组件编写单元测试用例。以下是组件:
XYZ.svelte
<script>
function submit() {
var name = document.getElementById("name").value; // Here document.getElementById("name") is coming as null when run from unit test case.
dispatch("abc", {
text: name
});
}
</script>
<input id="name" value="" type="text" label="Name" />
<button label="Submit" variant="primary" on:click={submit} />
XYZ.test.js
import XYZ from "XYZ.svelte";
describe("XYZ Component", () => {
it('dispatches abc event on submit', (next) => {
const target = document.createElement('div');
const xyz = new XYZ({ target: target });
setTimeout(() => {
const button = target.querySelector("button");
button.click();
xyz.$on('abc', event => {
next();
});
}, 10);
});
});
当 button.click 发生在测试用例上时,调用会触发 XYZ.svelte 中的提交函数,但是,
document.getElementById("name")
以 null 的形式出现,因为出现空指针异常错误。
知道我做错了什么吗?