ReactJS:如何测试状态变化

ReactJS: How to test a state change

本文关键字:测试 状态 变化 何测试 ReactJS      更新时间:2023-09-26

关于this.setState(...)的快速问题显然是异步操作,而单元测试是同步的,那么您如何确保测试中setsState的结果成功发生?即setState设置正确的值?

你是通过回调来做的吗?间谍/存根?

只是想找出最好的方法。

谢谢

setState接收一个可选的回调,一旦setState方法完成调用。您可以将此事件的处理程序作为prop传递。

例如,假设每次在input上输入内容时,状态应该改变。您可以将onInputChange处理程序作为prop传递,每次由于输入更改而导致状态完成更改时执行该处理程序。我提到的这个事件只对uncontrollable组件有意义。如果组件是controllable,则事件将作为I类型触发,并且controller-component将负责将组件呈现为输入更改的结果。

至于测试,单元测试不一定是同步的。实际上,在我的情况下,我使用done回调很多。这样的:

it('test something', (done) => { myModule.doSomething((error, success) => done()); });

上面的例子适用于karmamocha,例如