我正在为Jasmine编写Angular2的单元测试。
这是我的代码段:
component.ts
toggleSelect() {
this.checked = event.target.checked
this.tree.forEach(t => {
t.checked = this.checked
})
}
答案 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