Svelte Jest测试用例将document.getElementId设置为null

时间:2019-09-12 07:26:28

标签: javascript jestjs svelte svelte-3

我正在尝试使用jest-transform-svelte库为我的svelte组件编写单元测试用例。以下是组件:

XYZ.svelte

${__BeanShell("${__UUID}".replace("-"\,""),)}

XYZ.test.js

<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} />

当在测试用例上单击button.click时,调用将触发XYZ.svelte中的Submit函数,但是

  

document.getElementById(“ name”)

将作为null出现,因为它会得到null指针异常错误。

知道我在做什么错吗?

1 个答案:

答案 0 :(得分:0)

在Svelte中,可以通过将元素的引用绑定到变量来避开document.getElementById。尝试如下更改组件:

<script>
  import { createEventDispatcher } from 'svelte';

  const dispatch = createEventDispatcher();
  let name = null;

  function submit () {
    dispatch("abc", {
      text: name
    });
  }
</script>
<input bind:value={name} type="text" label="Name" />
<button label="Submit" variant="primary" on:click={submit} />
相关问题