如何写茉莉花测试

时间:2017-08-01 09:08:05

标签: angular jasmine

我正在为Jasmine编写Angular2的单元测试。

这是我的代码段:

component.ts

toggleSelect() {
    this.checked = event.target.checked
    this.tree.forEach(t => {
     t.checked = this.checked
    })
  }

1 个答案:

答案 0 :(得分:3)

错误消息"预期为真假。"表示jasmine期望变量的值为false,但实际值为true。

从上面的代码片段中,只有在以下代码块中进行断言时才会出现此错误

component.tree.forEach(t => {
   expect(t.checked).toBe(false);
});

其中check标志是假的,但实际上是真的。

从提供的代码中,我认为这是以下代码行(在测试中)的结果。

component.toggleSelect(event);

传递的事件的检查值为true。使用事件对象调用toggleSelect时,树数组中每个条目的选中值将设置为true。结果,第一个断言由代码块

表示
component.tree.forEach(t => {
   expect(t.checked).toBe(true);
});

成功。

然而,在断言之后,你没有打电话

component.toggleSelect(event);

使用一个事件对象,其检查值为false。

这将导致保留树的先前状态。

要修复测试,您需要做的就是在失败的断言之前调用以下代码

event.target.checked = false; // Set the checked value to false
component.toggleSelect(event); // Call toggle select with the updated event