我如何单元测试父对在子对象上调用方法的组件做出反应

时间:2015-11-04 01:37:02

标签: unit-testing reactjs

在反应文档中的“提示”下,他们描述了组件之间进行通信的模式,其中父组件调用子方法(通过引用)。

请参阅https://facebook.github.io/react/tips/expose-component-functions.html

我正在使用第三方反应组件,要求我使用这种方法。

我想对我的组件进行单元测试,并在适当的情况下检查它是否调用了孩子的方法(使用正确的参数),但我无法弄清楚如何...

对于Facebook文档中的示例,如何在最后一个Todo上编写一个检查Todos调用动画的测试?

1 个答案:

答案 0 :(得分:1)

考虑使用Facebook的Flux pattern。通过使用此模式,您将从状态管理中分离UI组件; “商店”促进了国家管理。商店最终协调组件之间的状态。现在你的观点没有直接沟通。此外,数据仅以一种方式流动。

Flux Pattern

请注意,您可以使用许多Flux实现such as reFlux。您可以通过搜索可用的NPM包找到其中的许多

...那么,如何测试呢?

一旦确定了模式,您就可以搜索大量资源,博客和示例进行测试。目前,单元测试有两种主要方法:Jest和Jasmine。 Facebook recommends using Jest

  

对于在应用程序的真正隔离单元上运行的单元测试,我们需要模拟除我们正在测试的模块之外的每个模块。 Jest使Flux应用程序的其他部分的模拟变得微不足道。

...

  

Flux商店通常会收到大量正式的单元测试覆盖率,因为这是应用程序状态和逻辑存在的地方。商店可以说是Flux应用程序中提供覆盖的最重要的地方