She*_*don 5 unit-testing reactjs jestjs
我正在编写测试,使用 Jest 和 React 单击值“绿色”单选按钮。我遇到错误
单选按钮:
<input id="multicolored" name="colours" type="radio" value="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' } });
});
Run Code Online (Sandbox Code Playgroud)
但我面临一个错误。“无法触发“点击”事件 - 请提供 DOM 元素。”
我是否遗漏了某些内容,或者是否有其他方法可以使用 fireEvent 单击单选按钮?
小智 3
对于单选类型,您应该使用更改而不是在 fireEvent 中单击。
fireEvent.change(input, { target: { value: 'green' } });
Run Code Online (Sandbox Code Playgroud)
提示:建议使用 screen 来查找元素:
import { render, fireEvent, screen } from '@testing-library/react';
const radio = screen.getByLabelText('Radio Button');
Run Code Online (Sandbox Code Playgroud)
DOM 测试库还导出一个屏幕对象,其中包含预先绑定到 document.body 的每个查询(使用 inside 功能)。React 测试库等包装器重新导出屏幕,以便您可以以相同的方式使用它。您可以查看测试库文档。
| 归档时间: |
|
| 查看次数: |
25380 次 |
| 最近记录: |