Javascript TypeError:无法执行';调度事件';在';EventTarget';:参数1的类型不是';事件';
我正在学习react中的测试,现在我正在尝试为登录页面创建一个测试,不幸的是,我遇到了一个错误 这是测试文件Javascript TypeError:无法执行';调度事件';在';EventTarget';:参数1的类型不是';事件';,javascript,reactjs,unit-testing,jestjs,react-testing-library,Javascript,Reactjs,Unit Testing,Jestjs,React Testing Library,我正在学习react中的测试,现在我正在尝试为登录页面创建一个测试,不幸的是,我遇到了一个错误 这是测试文件 import React from 'react'; import { render, fireEvent } from '@testing-library/react'; import { BrowserRouter as Router } from 'react-router-dom'; import { act } from 'react-dom/test-utils'; impo
import React from 'react';
import { render, fireEvent } from '@testing-library/react';
import { BrowserRouter as Router } from 'react-router-dom';
import { act } from 'react-dom/test-utils';
import Login from 'pages/Auth/Login';
import '@testing-library/jest-dom/extend-expect'
// describe what we are testing.....
describe('Login Component', () => {
it('renders the sign in page with a form submission', async () => {
const { getByTestId, getByPlaceholderText, queryByTestId } = render(
<Router>
<Login />
</Router>
);
await act(async () => {
fireEvent.change(getByPlaceholderText('Business e-mail'), { target: { value: 'karl@gmail.com' } });
fireEvent.change(getByPlaceholderText('Password'), { target: { value: 'password' } });
fireEvent.click(getByTestId('sign-in'));
expect(getByPlaceholderText('Email address').value).toBe('karl@gmail.com');
expect(getByPlaceholderText('Password').value).toBe('password');
});
});
})
从“React”导入React;
从'@testing library/react'导入{render,firevent};
从“react Router dom”导入{BrowserRouter as Router};
从'react dom/test utils'导入{act};
从“pages/Auth/Login”导入登录名;
导入“@testing library/jest dom/extend expect”
//描述我们正在测试的内容。。。。。
描述('登录组件',()=>{
它('使用表单提交呈现登录页面',异步()=>{
常量{getByTestId,GetByPlaceholder Text,queryByTestId}=render(
);
等待动作(异步()=>{
change(getByPlaceholderText('Business e-mail'),{target:{value:'karl@gmail.com' } });
change(getByPlaceholderText('Password'),{target:{value:'Password'}});
单击(getByTestId('sign-in');
expect(getByPlaceholderText('Email address').value).toBe('karl@gmail.com');
expect(getByPlaceholderText('Password').value).toBe('Password');
});
});
})
当我运行npm测试时
我得到以下错误
我需要什么来解决这个问题?没有必要
等待act(异步()=>
试着这样做:`
it('renders the sign in page with a form submission', async () => {
const { getByTestId, getByPlaceholderText, queryByTestId } = render(
<Router>
<Login />
</Router>
);
fireEvent.change(getByPlaceholderText('Business e-mail'), { target: { value: 'karl@gmail.com' } });
fireEvent.change(getByPlaceholderText('Password'), { target: { value: 'password' } });
fireEvent.click(getByTestId('sign-in'));
expect(getByPlaceholderText('Email address').value).toBe('karl@gmail.com');
expect(getByPlaceholderText('Password').value).toBe('password');
});
it('使用表单提交呈现登录页面',async()=>{
常量{getByTestId,GetByPlaceholder Text,queryByTestId}=render(
);
change(getByPlaceholderText('Business e-mail'),{target:{value:'karl@gmail.com' } });
change(getByPlaceholderText('Password'),{target:{value:'Password'}});
单击(getByTestId('sign-in');
expect(getByPlaceholderText('Email address').value).toBe('karl@gmail.com');
expect(getByPlaceholderText('Password').value).toBe('Password');
});
`