React 测试库:在 TestId 元素中获取子输入

React Testing Library: Get child input inside of TestId element

我有这样的结构:

<div data-test-locator="MyId">
    <input value="some" type="checkbox" checked />
</div>

我需要测试复选框是否被选中。但是我怎样才能首先得到它呢?我可以得到一个带有这样的测试 id 的元素: getByTestId('MyId') 但是我怎样才能得到它的子输入呢?

现在,我通过按值获取复选框解决了这个问题:

expect(getByDisplayValue('some').checked).toBeTruthy();

如果你知道结构不会改变,你可以使用firstChild

expect((getByTestId('MyId').firstChild).checked).toEqual(true)

使用querySelector我们不需要知道结构:

const input = screen
  .getByTestId('MyId')
  .querySelector('input')

expect(input.checked)
  .toBeTruthy()