我对测试和尝试为我们的项目编写一个简单的测试非常陌生......
test('Attempt Login', async () => {
const submitHandler = jest.fn( ()=> console.log('hello'))
const { debug, getByText, getByTestId, getByPlaceholderText } = render
(
<Router>
<LoginPage submitHandler={submitHandler} />
</Router>
)
fireEvent.change(getByPlaceholderText("Enter Username"), {
target: { value: "admin" }
});
fireEvent.change(getByPlaceholderText("Enter Password"), {
target: { value: "Password" }
});
fireEvent.click(getByTestId("login-btn"));
expect(submitHandler).toHaveBeenCalled()
})
我的登录按钮
<Button data-testid="login-btn" type="submit" variant="contained" color="primary"
onClick={(event)=>submitHandler(event)}>
测试错误
expect(jest.fn()).toHaveBeenCalled()
Expected number of calls: >= 1
Received number of calls: 0
45 | fireEvent.click(getByTestId("login-btn"));
46 |
> 47 | expect(submitHandler).toHaveBeenCalled()
| ^
48 | })
49 |
50 |
在此先感谢您的帮助。我已经在这上面花了太长时间-_-
编辑:尝试测试单击登录按钮的结果
这是我要尝试的:
mock an Axios call to the login route
await waitForElement getByText('home')
expect getbytext('home')
我在正确的轨道上吗?
我是否需要导入重定向页面组件并将其放置在路由器中?例如它重定向到它的组件?