javascript - 使用 React 测试库进行测试时输入不会更新
问题描述
我刚刚开始使用 React 测试库,我的第一次测试遇到了一些问题。
目的是测试输入值是否根据值更改事件更新,但我收到此错误:
expect(received).toBe(expected) // Object.is equality
Expected: "foo"
Received: ""
我不明白我做错了什么,我按照文档并根据screen.debug()
输入值是正确的:
// more code
<input
id="autocomplete"
name="where"
placeholder="Where do you want to eat?"
type="text"
value="foo"
/>
// more code
这是完整的测试文件:
import React from 'react';
import { render, fireEvent, cleanup, screen } from '@testing-library/react';
import { restContext } from './../../../context/restaurant/restContext';
import DisplaySearchBar from '../../../layout/DisplaySearchBar/DisplaySearchBar';
jest.mock('../../Alert/Alert', () => ({
default: () => null,
__esModule: true,
}));
const props = {
handleScriptLoad: jest.fn(),
};
let value = {
restaurants: [],
getRestaurants: jest.fn(),
setAlert: jest.fn(),
};
let wrapper = (
<restContext.Provider value={value}>
<DisplaySearchBar {...props} />
</restContext.Provider>
);
afterEach(cleanup);
describe('Search', () => {
test('1- input "where" updates its value when input simulated', () => {
render(wrapper);
let input = screen.getByPlaceholderText('What do you want to eat?');
fireEvent.change(input, {
target: { value: 'foo', name: 'where' },
});
screen.debug();
expect(input.value).toBe('foo');
});
});
谢谢你的帮助!
解决方案
推荐阅读
- spring - onPartitionsRevokedBeforeCommit 与 onPartitionsRevokedAfterCommit
- c# - 提问 BackgroundWorker 并打开新页面
- javascript - 更新时无法拖动 ionRangeSlider 滑块
- sql - 如何建立从 ServiceNow 到我的 SQL 数据库的连接?
- java - 无法使用 RestControllerAdvice 为身份验证失败生成自定义错误消息
- ios - 如何将底部颜色从黑色渐变替换为白色渐变?
- javascript - 有没有办法从 DOM 中获取选项的不同值?
- php - 如何使用 PA API 在网站上获取产品价格
- ios - 为什么新建 UIView 类时,不能一起创建 XIB?
- laravel - PUT 和 POST 方法的 REST 标准是什么?