Angular 检查元素是否存在-Jasmine&;有棱角的
我想写一个测试,在我点击页面后检查页面上是否存在元素。因此,当我单击类为“addItem”的元素时,使用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.
*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()。