我正在使用react-router-dom为react-redux编写的登录表单编写测试 .
我的组件看起来像这样:
class LoginForm extends Component {
render() {
const {
isAuthenticated,
...
} = this.props
if (isAuthenticated) {
return (
<Redirect to="/" />
)
}
return (
<div style={{ ...styles.main }}>
...
</div>
)
}
}
为了测试这个组件,我编写了以下测试:
import React from "react"
import renderer from "react-test-renderer"
import { MemoryRouter } from "react-router-dom"
import LoginPage from "./LoginPage"
it("renders a redirect if the user is authenticated", () => {
const tree = renderer
.create(
<MemoryRouter>
<LoginPage
isAuthenticated={ true } />
</MemoryRouter>
)
.toJSON()
expect(tree).toMatchSnapshot()
})
此测试正确安装组件并“呈现”重定向,但它似乎也会触发更新 . 这会重新发送重定向并在我的测试输出中给出以下警告:
console.error node_modules\warning\warning.js:51
Warning: You tried to redirect to the same route you're currently on: "/"
如何防止此警告出现?
谢谢!