Angular 我怎样才能单元测试一个启动p按钮是否被禁用?
我正在写一个组件来包装(一些)启动按钮。我试图编写一个单元测试,根据外部组件上的一些设置检查按钮是否被禁用 但是,禁用字段始终未定义?我可以在Karma/Jasmine屏幕上看到它确实被禁用了,所以我很困惑为什么我不能让测试工作 html模板包括:Angular 我怎样才能单元测试一个启动p按钮是否被禁用?,angular,unit-testing,primeng,Angular,Unit Testing,Primeng,我正在写一个组件来包装(一些)启动按钮。我试图编写一个单元测试,根据外部组件上的一些设置检查按钮是否被禁用 但是,禁用字段始终未定义?我可以在Karma/Jasmine屏幕上看到它确实被禁用了,所以我很困惑为什么我不能让测试工作 html模板包括: <p-button id="submit" label="Submit" [disabled]="!enableSubmit""> </p-button> 结果是: Expected undefined to equ
<p-button id="submit" label="Submit" [disabled]="!enableSubmit"">
</p-button>
结果是:
Expected undefined to equal true.
Error: Expected undefined to equal true.
无论出于何种设计原因,禁用的标记实际上并不存在于Html中的外部priming p-button元素上 取而代之的是一个内部按钮,它保存着实际的禁用标志,测试可以稍微修改如下:
Expected undefined to equal true.
Error: Expected undefined to equal true.
fit('should disable submit button', done => {
component.enableSubmit = false;
fixture.detectChanges();
fixture.whenStable().then(() => {
const elem = fixture.debugElement.query(By.css('#submit > button'));
const button = elem.nativeElement as HTMLButtonElement;
expect(button.disabled).toEqual(true);
done();
});
});