首页 > 解决方案 > 开玩笑测试中未调用 componentWillUnmount

问题描述

运行测试后出现此错误。不调用 componentWillUnmount。我在这里想念什么?

   expect(jest.fn()).toHaveBeenCalledWith(...expected)

    Expected: "mouseup", [Function anonymous]

    Number of calls: 0

组件.js

export default class Component extends React.Component {
  constructor(props) {
    super(props)
  }

  componentDidMount() {
    document.addEventListener("mouseup", this.handleMouseUp)
  }

  componentWillUnmout() {
    document.removeEventListener("mouseup", this.handleMouseUp)
  }

组件.spec.js

describe("unmounting", () => {
    let wrapper
    let handleMouseUp

    beforeEach(() => {
      document.removeEventListener = jest.fn()
    })

    it("removes mouseup event listener", () => {
      wrapper = mountComponent(Suggestions, props)
      handleMouseUp = wrapper.instance().handleMouseUp
      wrapper.unmount()
      expect(document.removeEventListener).toHaveBeenCalledWith("mouseup", handleMouseUp)
    })
  })

标签: reactjsjestjs

解决方案


推荐阅读