2017-08-01 142 views
0

我正在为Jasmine编写Angular2的单元测试。如何编写茉莉花测试

这里是我的代码片段:

component.ts 

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

回答

3

错误消息 “预期真实是假的。”意味着茉莉花期望变量的值是错误的,但实际值是真实的。

从上面的代码段,下面的代码块

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

在检查标志预期是假的做的断言此错误时才有可能,但这是真的。

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

component.toggleSelect(event); 

传递的事件的检查值为true。当使用事件对象调用toggleSelect时,树数组中每个条目的选中值都设置为true。由此,代码块

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

所代表的第一个断言成功。

但是下面这个说法,你是不是叫

component.toggleSelect(event); 

与事件对象,其选中的值是假的。

这会导致树的以前的状态被保留。

要解决你的测试,所有你需要做的是失败的

event.target.checked = false; // Set the checked value to false 
component.toggleSelect(event); // Call toggle select with the updated event 
断言之前调用下面的一段代码