Angular: 如何测试RadioButton?

Angular: How to test RadioButton?

Angular Material 提供 MatButtonHarness 来测试常规 HTML 按钮。有了它你可以 'getText', 'click'.

有没有类似测试RadioButtons的东西?我希望 MatRadioHarness 存在,但它不存在。

如果没有,推荐的方法是什么?

谢谢!

我找不到任何文档,但查看“MatButtonHarness”的源代码在哪里 (~myproject\node_modules@angular\material\button) 我能够用线束识别位置 class es 用于单选按钮 (c:\Project\AngularLearning\Frontend\node_modules@angular\material\radio).

在 'testing' 子文件夹中,我能够找到实际的 classes 来使用单选按钮线束:MatRadioGroupHarness 和 MatRadioButtonHarness。显而易见的答案,但令人困惑的是,单选按钮的 class 中没有 'button'。

在我找到特定的 classes 之后,我用谷歌搜索并确定了工作示例:https://stackblitz.com/angular/rllllvapblod?file=src%2Fapp%2Fradio-harness-example.spec.ts

让它工作的一个重要部分是将 MatRadioModule 添加到我的测试初始化​​的导入部分:

describe('MapsComponent', () => {
  let component: MapsComponent;
  let fixture: ComponentFixture<MapsComponent>;
  let componentService: HexesService;

  beforeEach(
    waitForAsync(() => {
      TestBed.configureTestingModule({
        imports: [MatRadioModule],
        declarations: [MapsComponent],
      }).compileComponents();
    ...

希望这对其他人也有帮助!