2

我目前正在使用 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: "/"

如何防止出现此警告?

谢谢!

4

0 回答 0