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方法正在正常调用
我认为检查componentDidMount
本身是否被调用并不重要,但是您可以通过触发它来断言是否发生了其他事情。仅断言它被称为