我已决定尽我所能远离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
我想念什么?