Я прочитал этот пост , где приведен следующий пример:
import React from "react";
import { render, fireEvent } from "react-testing-library";
test("radio", () => {
const { getByLabelText } = render(
<form>
<label>
First <input type="radio" name="radio1" value="first" id="firstRadioId" />
</label>
<label>
Second <input type="radio" name="radio1" value="second" />
</label>
</form>
);
const radio = getByLabelText('First')
fireEvent.change(radio, { target: { value: "second" } });
expect(radio.value).toBe('second')
});
Но это кажется странным, поскольку это не результат проверяемого щелчка. Скорее, он напрямую устанавливает значение для определенной строки. Тем не менее, событие click не работает:
// ...
const radio = getByLabelText('First')
const radioSecond = getByLabelText('Second')
fireEvent.click(radioSecond);
expect(radio.value).toBe('second');
// ...
Я не понимаю, почему document.getElementById('firstRadioId').checked
возвращает false. В браузере это происходит, как видно из приведенного ниже примера:
https://codesandbox.io/s/silly-saha-xt0j7
На странице указателя вы видите, что radio.checked возвращает true. Но в тесте это не так.