我使用 Sinon 来监视这个方法,但是当我尝试模拟{{{}时,似乎没有调用我正在进行间谍活动的方法{\ n} 1 {} onSubmit
标记。
这里是JSFiddle。
答案 0 :(得分:1)
首先,这一行:
React.addons.TestUtils.Simulate.submit(Instance, form.getDOMNode());
应该是:
React.addons.TestUtils.Simulate.submit(form.getDOMNode());
但由于组件的结构方式,这并没有解决问题。您已经将当前_handleSubmit
函数提供给React进行调用,React将调用该函数。它不会打电话给Instance._handleSubmit()
,这是您已取代的。{1}}。如果您将组件更改为:
var that = this;
...
<form onSubmit={function() { that._handleSubmit()}}>
它有效,因为您在实例上显式调用该方法。
但是我建议你不断言该方法被调用,而是断言它应该执行的任何副作用都是实际执行的。像变异状态,调用外部服务等