我正在为几家Flux商店编写单元测试,并且遇到了一些麻烦。助焊剂商店 - 单元测试
我的店一般都建这样的:
storeObj = {
...
}
_secretsetterfunction = function(){}
module.exports storeObj
正如你所看到的,因为二传功能是存储对象之外 - 这是不能直接访问。
这提出了一个问题,因为测试/操作存储数据的唯一方法是通过Action - > Dispatcher - >事件侦听器(Action可以在技术上被删除),这不是我想要的在单元测试商店时要经过。
另一种方法是将setter方法实际放在商店对象上 - 但这并不是我真正想做的事情。
有什么想法?
我得到的,并它确实工作。 但它可以很快变得相当复杂,尤其是使用waitFor()命令。 – 2014-09-21 07:53:58
不是,它其实很简单。您将所有测试设置为超时,调用某个操作,然后等待存储上的更改事件并验证有效内容。没有简单的方法来做到这一点。我建议摩卡茉莉花比它更好地支持这种事afaik。 – FakeRainBrigand 2014-09-21 08:05:29
我不认为React商店之间的依赖关系是一个好主意。使用CQRS/EventSourcing原则可以帮助大型团队提高可测试性和扩展性。另请参阅http://stackoverflow.com/a/25806145/82609 – 2014-09-22 12:52:34