Reactjs 无法发射一个";点击";事件-请提供DOM元素-单选按钮JestJs

Reactjs 无法发射一个";点击";事件-请提供DOM元素-单选按钮JestJs,reactjs,unit-testing,jestjs,Reactjs,Unit Testing,Jestjs,我正在编写测试,使用Jest和React单击值“green”单选按钮。我面临一个错误 单选按钮: id=“radioButton”aria label=“Radio Button”name=“Radio Button field”> 无线电测试: import React from 'react'; import { render, fireEvent } from '@testing-library/react'; import ReactDOM from 'react-dom'; impor

我正在编写测试,使用Jest和React单击值“green”单选按钮。我面临一个错误

单选按钮:
id=“radioButton”aria label=“Radio Button”name=“Radio Button field”>

无线电测试:

import React from 'react';
import { render, fireEvent } from '@testing-library/react';
import ReactDOM from 'react-dom';
import Colors from './colors';
import { BrowserRouter } from 'react-router-dom';

test('It should click on radio button', async () => {
  const div = document.createElement('div');
  const dom = render(
    <BrowserRouter>
      <Colors />
    </BrowserRouter>,
    div
  );

  var input = dom.getByLabelText('Radio Button');
  fireEvent.click(input, { target: { value: 'green' } });
});
从“React”导入React;
从'@testing library/react'导入{render,firevent};
从“react dom”导入react dom;
从“./Colors”导入颜色;
从“react router dom”导入{BrowserRouter};
test('它应该单击单选按钮',async()=>{
const div=document.createElement('div');
常量dom=render(
,
div
);
var input=dom.getByLabelText(“单选按钮”);
单击(输入,{target:{value:'green'});
});
但我面临一个错误。无法触发“单击”事件-请提供DOM元素


我是否遗漏了什么,或者是否有其他方法可以使用fireEvent单击单选按钮?

在单选类型上,您应该使用更改,而不是在fireEvent中单击

fireEvent.change(input, { target: { value: 'green' } });
提示:建议使用屏幕查找元素:

import { render, fireEvent, screen } from '@testing-library/react';

const radio = screen.getByLabelText('Radio Button');
DOM测试库还导出一个screen对象,该对象包含预绑定到document.body的每个查询(使用In功能)。React Testing Library之类的包装器将重新导出屏幕,以便您可以以相同的方式使用它。你可以去看看