所以我期待着为ReactJS应用程序编写集成级别测试(您正在与真实数据库进行交谈,并且完全没有被模拟),并且认为Selenium是此类测试的默认选择。通过使用Angular 1.x,您可以判断角度的摘要循环是否仍在处理DOM,从而无需添加效率低下且不灵活的睡眠。ReactJS Selenium Testing
ReactJS中是否有类似的东西可以用来代替一堆flakey睡眠命令?
所以我期待着为ReactJS应用程序编写集成级别测试(您正在与真实数据库进行交谈,并且完全没有被模拟),并且认为Selenium是此类测试的默认选择。通过使用Angular 1.x,您可以判断角度的摘要循环是否仍在处理DOM,从而无需添加效率低下且不灵活的睡眠。ReactJS Selenium Testing
ReactJS中是否有类似的东西可以用来代替一堆flakey睡眠命令?
始终从根组件
渲染有可以传递到渲染功能的回调:
ReactComponent render(
ReactElement element,
DOMElement container,
[function callback]
)
您还可以收听顶部组件的componentDidUpdate
方法。
不幸的是,如果您总是从顶层组件渲染,这意味着您在不使用任何本地状态的情况下管理React之外的所有状态,并将其作为高效的模板引擎以纯功能方式使用。 Some frameworks帮助你这样做。
即使Flux并没有真正执行此操作(至少原始实施),因为Flux商店不一定是从最顶层注入的道具。 (他们在atom-react)
并非总是从根组件渲染
我不知道有任何优雅的解决这个问题,但这里是我会做什么:
notifyReactIsWorking
notifyReactIsWorking
与_.debounce(changeMeter, 1000, false)
这样,当调用notifyReactIsWorking
时,这意味着React已经稳定下来,因为没有一个生命周期方法被调用超过1秒钟。
这是一个黑客,但可能应该在大多数情况下工作。
也对更高效的解决方案感兴趣:)
是:Selenium显式等待。 – SiKing