无法使用Jest模拟单击按钮

时间:2019-10-23 15:55:32

标签: javascript reactjs jestjs

我已决定尽我所能远离enzyme,而只坚持jest。这是我要实现的一个简单目标:使用jest渲染按钮并模拟click事件。这是代码:

import React from "react";
import ReactTestUtils, { act } from "react-dom/test-utils";
import renderer from "react-test-renderer";
import ReactDOM from "react-dom";

var x = 1;
class MyButton extends React.Component {
  render() {
    return (
      <div>
        <button
          data-test-id="btnSave"
          onClick={() => {
            x++;
          }}
        >
          ClickMe
        </button>
      </div>
    );
  }
}

describe("Book tests", () => {
  it("should be able to simulate click", () => {
    act(() => {
      const tree = renderer.create(<MyButton data-test-id="btnSave" />);
      const btn = tree.root.findByProps({ "data-test-id": "btnSave" });
      var el = ReactDOM.findDOMNode(btn.instance) as Element;
      ReactTestUtils.Simulate.click(el);
    });
    expect(x).toBe(2);
  });
});

测试失败并显示错误

 Expected: 2
 Received: 1

我想念什么?

0 个答案:

没有答案