测试 class 是否被 Jasmine 和 Karma 改变

Test if class is changed with Jasmine and Karma

我正在尝试通过以下方式测试按钮是否被点击:

单击按钮时,某些元素 class 从 wrapper-container 更改为 wrapper-container-expanded(我不想检查单击按钮时是否调用了函数 -这不是我的目的)。

我正在尝试通过以下方式进行检查:

it('should class be changed', ()=>{ 
   fixture.detectChanges()
   clickedElement.nativeElement.click() // click the button that causes the class change
   elementToBeExpanded = fixture.debugElement.nativeElement.querySelector('wrapper-container-expanded')
   expext(elementToBeExpanded).toBeTruthy() // check if the element with the new class exists in the DOM -the elementToBeExpanded is null
})

虽然我可以看到调用了函数并且更改了 class,但是找不到带有新 class 的元素,而旧的 wrapper-container 似乎存在。

点击事件后需要调用fixture.detectChanges()

it('should class be changed', () => { 
   // ...
   clickedElement.nativeElement.click() // click the button that causes the class change
   fixture.detectChanges()              // detect the changes!!
   // ...
})