我正在尝试使用 cypress 测试库编写测试手风琴的切换动作。下面是手风琴的标记,它正在使用复选框 hack 进行切换:
<div class='accordion'>
<div class='accordion__item'>
<input style="display:none" type="checkbox" id="item1"/>
<label class="accordion__itemLabel"for="item1">FAQ's</label>
<div style="display:none" class="accordion__itemContent"> FAQ Content Here </div>
</div>
<div class='accordion__item'>
<input style="display:none" type="checkbox" id="item2"/>
<label class="accordion__itemLabel"for="item2">Contact us details</label>
<div style="display:none" class="accordion__itemContent"> Contact us details here </div>
</div>
</div>
和测试如下:
it("should toggle accordion ", () => {
const checkbox = cy.findByRole({ role: "checkbox" });
expect(checkbox.checked).equal(false);
cy.get(".accordion__itemContent").invoke("display").equal("none")
fireEvent.click(checkbox)
expect(checkbox.checked).equal(true);
cy.get(".accordion__itemContent").invoke("display").equal("block")
})
问题cy.findByRole({ role: "checkbox" });
总是返回未定义,我该如何解决这个问题或以正确的方式编写上面的测试。
谢谢