检查元素是否存在 - Jasmine&Angular

dec*_*bal 6 jasmine angular

我想编写一个测试来检查点击后页面上是否存在元素.因此,当我单击带有"addItem"类的元素时,使用*ngIf隐藏此元素.我试过这样的:

it('Should handle click on .addItem button', () => {
    spyOn(component, 'addItem');
    addItemDebugElement = componentFixture.debugElement.query(By.css('.addItem'));
    addItemDebugElement.nativeElement.click();  //  click on the button
    expect(addItemDebugElement).toExist();
});
Run Code Online (Sandbox Code Playgroud)

但它说:Property 'toExist' does not exist on type 'Matchers<DebugElement>'. 你能告诉我该怎么做吗?非常感谢!

MGD*_*ies 13

我建议你使用

//    Add Item Debug Ele comes out as null.
addItemDebugElement = componentFixture.debugElement.query(By.css('.addItem'));
expect(addItemDebugElement).toBeFalsy();
Run Code Online (Sandbox Code Playgroud)

和...

//    Add Item Debug Ele comes out as not null.
addItemDebugElement = componentFixture.debugElement.query(By.css('.addItem'));
expect(addItemDebugElement).toBeTruthy();
Run Code Online (Sandbox Code Playgroud)