2012-03-14 125 views

回答

119

我在茉莉花和摩卡都做過測試。首先,切換相對容易。基本的describeit BDD模式是相同的。您需要更改斷言的方式,並切換到異步測​​試的不同接口。總的來說它們是可比的

摩卡的異步界面更簡單,更一致。測試和設置可以是同步或異步的,這很好。這一點以及TJ Holowaychuck是史詩級詩人的事實是嘗試摩卡的好理由。

我認爲茉莉花匹配者更容易閱讀和更優雅,特別是與jasmine-jquery插件配對時更是如此。摩卡通常與一個獨立的斷言庫配合使用,如果您正在進行瀏覽器內測試,通常使用chai.js,或者使用should.js進行僅節點測試。我很高興柴的assert.equal()界面,但茉莉花風格expect($("#central_errors").html()).toContain("must provide a name");似乎對我更優雅。我不喜歡使用點分隔句子的風格界面風格,因爲它在聽覺上效果不好。

最終,這是一個個人偏好問題,我強烈建議你花一天左右的時間寫摩卡測試,而不是茉莉花,看看它的感覺。完全是一項有價值的投資,即使你決定堅持使用茉莉花,你也會從第一手知識中獲益,並且意識到其他方法可以解決Jasmine解決的一些問題。我嘗試過,我堅持摩卡,部分原因是因爲投注TJ是一個不錯的選擇,但茉莉花也是一個成熟,穩固,廣泛採用的圖書館。

+0

謝謝彼得!只是我正在尋找的觀察:) – LupineDev 2012-03-27 20:16:21

+7

嘿彼得,偉大的寫作!只需要添加Chai,你就可以得到一個Jasmine風格的(「bdd」)界面:http://chaijs.com/code/expect.html實際上你可以混合使用它和assert(「 tdd「)接口。類似jasmine-jquery,還有一個chai-jquery插件,儘管它很新穎。 – 2012-04-25 21:00:02

+6

是的,柴和摩卡都有多個接口。正如我上面提到的,我不喜歡chad bdd/expect界面,因爲我沒有找到有用的所有這些點。 – 2012-04-25 22:32:51

4

查看github上的茶袋項目。它特別允許您將資產管道與Mocha,Jasmine或QUnit一起使用。

https://github.com/modeset/teaspoon

摩卡是一個非常偉大的圖書館,但我通常使用茉莉 - 對我來說這主要是關於知識和經驗與茉莉,但摩卡有一些很酷的功能 - 如讓你知道當你讓事情進入全球範圍。

認爲值得一提的是該項目,因爲它專門允許你玩弄兩個(在不同的套房),所以你可以自己決定。