助焊剂储存 - 单元测试

问题描述 投票:2回答:3

我正在为几家Flux商店编写单元测试,并遇到了一个小麻烦。

我的商店通常是这样构建的:

storeObj = {
...
}

_secretsetterfunction = function (){}

module.exports storeObj

如您所见,由于setter函数位于store对象之外 - 它不能直接访问。

这提出了一个问题,因为测试/操作存储数据的唯一方法是通过Action - > Dispatcher - >事件监听器(技术上可以删除Action),这不是我想要经历的事情。单元测试商店。

另一种方法是将setter方法实际放在store对象上 - 但这不是我真正想做的事情。

有什么想法吗?

jasmine reactjs reactjs-flux
3个回答
4
投票

我也有这个问题,使用Jasmine。

我写了一篇关于如何在不使用Jest时获取对这些私有内部函数的引用的博客文章和示例回购:http://bensmithett.com/testing-flux-stores-without-jest/

TL; DR - 使用rewire


2
投票

行动实际上是商店的公共场合。您只需验证操作的效果即可完全测试您的商店。


0
投票

因此,助手团队刚刚在一篇博文中解决了这个问题,尽管他们使用的是他们自己的变种Jest。还是值得一读:

http://facebook.github.io/react/blog/2014/09/24/testing-flux-applications.html?utm_source=javascriptweekly&utm_medium=email

© www.soinside.com 2019 - 2024. All rights reserved.