2014-10-16 224 views
11

我是新來的測試一般,並一直在教我自己Jasmine。我試圖瞭解運行Jasmine和jQuery-JasmineKarma與運行Jasmine本身的區別。 Jasmine的教程沒有解決使用Karma時需要的調整。獨立茉莉花與Karma - 茉莉花

有人可以向我解釋Karma-Jasmine與獨立茉莉花的區別嗎?它仍然需要一個spec runner,並且文件結構仍然是一樣的嗎?

我測試的DOM事件 - 很多點擊處理程序 - 並不明白如何嘲笑這一點。有人可以概述一些基本想法嗎?例如,如果我想在用戶單擊按鈕後檢查p元素是否已添加到div,那麼在文件結構和函數中它們如何工作?

謝謝。

回答

2

我沒有使用jasmine-jquery,但對於噶瑪茉莉測試,Karma使用karma.conf.js來發現外部依賴(如jasmine-jquery)。特別是files property。一些很好的例子是here如果您使用jasmine的SpecRunner.html運行jasmine測試,您需要確保您使用的任何內容都與SpecRunner.html中的腳本標記鏈接。

至於測試點擊處理程序,一個很好的選擇可能只是直接調用點擊處理函數。聽起來好像你想要更真實的東西,你正在接近功能測試。爲此,您可以考慮合併nightmare以實現點擊等用戶交互自動化。

8

Karma和Jasmine的SpecRunner.html都是測試運行者(又名spec runner)。兩者之間的區別在於Karma是一個在瀏覽器外部運行的應用程序,而SpecRunner是一個普通的HTML文件,包含一系列在瀏覽器中打開的腳本引用。

測試亞軍的是生活在瀏覽器之外提供了許多好處:

+0

thx幫助我。 @ user2943490你有沒有使用構建工具使用業力?像Grunt或Gulpjs會喜歡用一個例子來理解。 - Cheers – jamie 2015-02-16 02:18:08

+0

@jamie Karma是獨立的npm模塊,並且不依賴於Grunt或Gulp(你只需用'karma start'從控制檯運行Karma),所以你在默認情況下沒有任何構建工具就可以運行它。如果你的意思是*帶*構建工具,那麼可以使用插件,例如[gulp-karma](https://www.npmjs.com/package/gulp-karma) – user2943490 2015-02-16 04:25:07