在我的 Angular 应用程序中,我有一个简单的反应式表单,它使用ng-select作为必需的输入。
我还有一个“保存”按钮,仅在表单有效时才启用。
一切正常。
我想编写一个简单的测试用例,以确保在 ng-select 控件没有值时不启用 Save 按钮。
这是我能够做到的:
it('should not allow to save without a selected item', () => {
component.form.get('myNgSelectControl').setValue('some-value');
component.form.updateValueAndValidity();
fixture.detectChanges();
expect(page.saveButton.disabled).toBe(false);
component.form.get('myNgSelectControl').setValue(null);
component.form.updateValueAndValidity();
fixture.detectChanges();
expect(page.saveButton.disabled).toBe(true);
});
但是我想以不同的方式构建这个测试,我想模拟更多更高级别的工作流程:而不是手动设置表单控件的值,我想做一些类似的事情:
“在 ng-select 中键入值 xxx”
“从下拉菜单中选择项目 xxx”
(断言保存按钮现在已启用)
“通过单击 ng-select 的‘X’清除选择”
(断言“保存”按钮现在已禁用)
我怎样才能做到这一点?