javascript 更改单选按钮值Angular Jasmine测试

2admgd59  于 2023-02-02  发布在  Java
关注(0)|答案(2)|浏览(162)

我有两个单选按钮,第一个选中了。现在,在我的测试文件中,我想选中第二个单选按钮,然后继续进一步测试。我找不到这样做的方法。
以下是我的单选按钮:

<div class="form-check form-check-inline">
      <input class="form-check-input" type="radio" name="RadioButton" (change)="some_func(true)" checked>
      <label class="form-check-label" for="inlineRadio1">Radio1</label>
 </div>
 <div class="form-check form-check-inline">
       <input class="form-check-input" type="radio" name="RadioButton" (change)="some_func(false)">
       <label class="form-check-label" for="inlineRadio2">Radio2</label>
</div>

我尝试了以下方法来更改单选按钮值,但不起作用:

let options: DebugElement[] = fixture.debugElement.queryAll(By.css('input[type="radio"]'));
options[1].triggerEventHandler('change', { target: options[1].nativeElement });

有人能帮我一下吗,我怎样才能选中第二个单选按钮?

pjngdqdw

pjngdqdw1#

Cypress有自己的API用于与link元素交互

<div
            class="form-check form-check-inline"
            data-cy="form-check-label"
          >
            <input type="checkbox" />
...

cy.get('[data-cy=form-check-label]').find('input').check()
假设div Package 了你的输入,你可以在它的子输入上使用find()并调用check(),使用data-cy=some_name给你的元素指定cypress选择器,然后你就知道如果元素属性改变了,比如类,你的测试不会受到影响。

uurv41yg

uurv41yg2#

我想你可以在这里找到解决办法:
Jasmine test for checkbox change handler function in angular 12

  • 您需要运行detectChanges()
  • 您可以通过以下方式访问您的无线电:

options[0].triggerEventHandler('change', { target: { checked: true } });
options[1].triggerEventHandler('change', { target: { checked: true } });

相关问题