2012-02-13 26 views
9

我想決定是否從一個大的Node應用程序從誓約切換到摩卡。我應該從誓言轉向摩卡嗎?

我已經享受了幾乎所有的誓言體驗 - 但對於傳遞的參數有些奇怪。我總是不得不撓頭去記住主題是如何工作的,這會干擾寫測試的基礎知識。在深度嵌套的異步測試中,這尤其成問題。儘管我發現將Vows與async.js結合起來可以提供一些幫助。

因此,摩卡在其報告中似乎更加靈活。我喜歡自由選擇測試風格&,它在瀏覽器中運行也很重要,這非常有用。但我擔心它仍不能解決深度嵌套異步測試的可讀性問題。

有沒有人有任何實際的建議 - 摩卡可以做深層嵌套測試可讀嗎?我錯過了什麼嗎?

+0

毫無疑問,是的。 – Raynos 2012-02-13 10:48:55

回答

8

摩卡是王牌。它提供了一個完成的回調,而不是等待茉莉花提供的。我不能談論從誓言中遷徙,但從茉莉花來看,它很簡單。在你的摩卡測試函數中,你可以使用異步(如果你想要的話)(或者Seq等,如果你想成爲遺留的),但是如果你在這個時候需要嵌套的回調,那麼你可以使用集成測試,這可能會讓你考慮測試的粒度。

OT:100%的測試覆蓋率很少提供任何價值。

+0

好點謝謝。也許你在粒度上是正確的 - 事情可能會分裂多一點。但是我經常發現一些情況,說3或4巢是需要測試的,我希望它更具可讀性。也許有一種方法可以以某種方式包裝描述函數。 – 2012-02-14 19:29:36

3

通過在單元測試套件中使用流控制來解決深度嵌套測試。

Vows不允許這麼做,因爲導出方式需要創建支持該方法的流控制庫。

要麼寫一個誓言流量控制庫或切換到摩卡並重新使用現有的流量控制庫。