问题描述
我正在尝试为测试创建自定义渲染,但是自从我使用screen.debug()
检查后,结果一定是做错了
<body>
<div />
</body>
我遵循了RTL文档中的示例。
这是displaySearchBar.test.js
import React from 'react';
import displaySearchBar from '../../../layout/displaySearchBar/displaySearchBar';
import { screen,render,cleanup,fireEvent } from '../../../../test/testUtils';
jest.mock('../../Alert/Alert',() => ({
default: () => null,__esModule: true,}));
const props = {
handleScriptLoad: jest.fn(),};
afterEach(cleanup);
describe('Search',() => {
test('1- input "where" updates its value when input simulated',() => {
const { getByPlaceholderText } = render(<displaySearchBar {...props} />);
let input = getByPlaceholderText('Where do you want to eat?');
screen.debug();
fireEvent.change(input,{
target: { value: 'foo',name: 'where' },});
expect(input.value).toBe('foo');
});
});
还有testUtil.js
import React from 'react';
import { render } from '@testing-library/react';
import restContext from '../Components/context/restaurant/restContext';
let value = {
restaurants: [],getRestaurants: jest.fn(),setAlert: jest.fn(),};
const Provider = ({ component }) => (
<restContext.Provider value={value}>{component}</restContext.Provider>
);
const customrender = (ui,options) =>
render(ui,{ wrapper: Provider,...options });
// re-export everything
export * from '@testing-library/react';
// override render method
export { customrender as render };
这是原始的displaySearchBar.js
import React from 'react';
import { render,fireEvent,screen } from '@testing-library/react';
import { restContext } from './../../../context/restaurant/restContext';
import displaySearchBar from '../../../layout/displaySearchBar/displaySearchBar';
jest.mock('../../Alert/Alert',};
let value = {
restaurants: [],};
let wrapper = (
<restContext.Provider value={value}>
<displaySearchBar {...props} />
</restContext.Provider>
);
afterEach(cleanup);
describe('Search',() => {
const { getByPlaceholderText } = render(wrapper);
let input = getByPlaceholderText('Where do you want to eat?');
fireEvent.change(input,});
expect(input.value).toBe('foo');
});
})
如果有人可以向我解释我做错了什么,那将是很好的。 谢谢您的帮助!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)