Angular 检查元素是否存在-Jasmine&;有棱角的

Angular 检查元素是否存在-Jasmine&;有棱角的,angular,jasmine,Angular,Jasmine,我想写一个测试,在我点击页面后检查页面上是否存在元素。因此,当我单击类为“addItem”的元素时,使用*ngIf隐藏该元素。我这样试过: it('Should handle click on.addItem button',()=>{ spyOn(组件“addItem”); addItemDebugElement=componentFixture.debugElement.query(By.css('.addItem')); addItemDebugElement.nativeElement.

我想写一个测试,在我点击页面后检查页面上是否存在元素。因此,当我单击类为“addItem”的元素时,使用
*ngIf
隐藏该元素。我这样试过:

it('Should handle click on.addItem button',()=>{
spyOn(组件“addItem”);
addItemDebugElement=componentFixture.debugElement.query(By.css('.addItem'));
addItemDebugElement.nativeElement.click();//单击按钮
expect(addItemDebugElement).toExist();
});
但是它说:
属性“toExist”在类型“Matchers”上不存在。

你能告诉我怎么做吗?非常感谢

您可以尝试此操作来检查Dom上是否存在该元素

expect($(文档)).toContain(addItemDebugElement)

expect(addItemDebugElement).toBeInDom();
我建议您使用

//Add Item Debug Ele显示为null。
addItemDebugElement=componentFixture.debugElement.query(By.css('.addItem'));
expect(addItemDebugElement).toBeFalsy();
而且

//Add Item Debug Ele显示为非空。
addItemDebugElement=componentFixture.debugElement.query(By.css('.addItem'));
expect(addItemDebugElement).toBeTruthy();

谢谢你的留言,但它不起作用。我有以下错误:
属性“toBeInDom”在类型“Matchers”上不存在。
引用错误:$未定义。
。我试图将$声明为:
declare let$:any
。在您编辑答案后,我也尝试了,但仍然得到一个错误:
[ts]属性“isPresent”在类型“DebugElement”上不存在。
似乎我无法使用
isPresent
toBeInDom
toExist
。请尝试addItemDebugElement.nativeElement.isPresent()。我尝试了这个:
expect()(addItemDebugElement.nativeElement).isPresent();
我仍然得到一个错误:
[ts]属性“isPresent”在类型“Matchers”上不存在。
它的抛出错误
addItemDebugElement.nativeElement.isPresent不是一个函数
我们可以使用
expect(addItemDebugElement).toBeFalsy();或expect(addItemDebugElement).Tobenell();
在空场景中,以及
在非空场景中使用expect(addItemDebugElement).toBeTruthy()
是的。我们也可以在空场景中使用toBeNull()。