我正在爲幾家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