Тестирование события щелчка переключателя, в результате которого проверяется - PullRequest
1 голос
/ 15 октября 2019

Я прочитал этот пост , где приведен следующий пример:

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. Но в тесте это не так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...