使用jest /酶在React上的ComponentDidMount中测试失败

问题描述 投票:0回答:1

Home.js


class Home extends Component {

  componentDidMount() {
    console.log("Check")
  }

  render() {
    return (
      <div>Home Page Screen</div>
    )
  }
}

export default Home

Home.test.js

import React from "react"
import Enzyme, { mount } from "enzyme"
import EnzymeAdapter from "enzyme-adapter-react-16"
import Home from "./Home"

Enzyme.configure({ adapter: new EnzymeAdapter() })

test("componet Lifecycle test", () => {
  const wrapper = mount(<Home />)
  const spy = jest.spyOn(wrapper.instance(), "componentDidMount")
  expect(spy).toHaveBeenCalledTimes(1)
}) 

测试用例的输出

src/Home.test.js
  ● Console

    console.log src/Home.js:6
      Check

  ● componet Lifecycle test

    expect(jest.fn()).toHaveBeenCalledTimes(expected)

    Expected number of calls: 1
    Received number of calls: 0

      15 |   const wrapper = mount(<Home />)
      16 |   const spy = jest.spyOn(wrapper.instance(), "componentDidMount")
    > 17 |   expect(spy).toHaveBeenCalledTimes(1)
         |               ^
      18 | }) 

      at Object.<anonymous> (src/Home.test.js:17:15)

[当我尝试检查componentDidMount生命周期方法是否使用jest / enzyme在组件Home中调用失败,但在浏览器中,组件lifecycle方法正在正常调用

reactjs enzyme jest
1个回答
0
投票

我认为检查componentDidMount本身是否被调用并不重要,但是您可以通过触发它来断言是否发生了其他事情。仅断言它被称为

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.