2014-04-18 85 views
1

我想前提是我知道Ember QUnit(最近在EmberConf報道)以及使用PhantomJS,所以請仔細閱讀我的觀點,如果你想標記爲重複。單元測試EmberJS應用程序(一個實際的單元測試)

我的目標是運行在命令行的單元測試,類似於摩卡測試可能會遇到

mocha simple_test.js

,看到在命令行記者的形式的結果。

  1. 單獨測試模塊模塊。我希望能夠在沒有正在運行的應用程序應用程序(可能是某種類型的測試用例)的情況下創建一個支持對象,路由或控制器的對象,並對該模塊運行斷言。在命令行
  2. 測試燼模塊(避免瀏覽器的記者像QUnit或無頭的瀏覽器,如PhantomJS)

我已經使用因緣和phantomjs的組合集成測試和驗收測試,我想看看我可以配合更多的單元測試。是否有人遇到類似於我上面列出的單元測試設置,或者它不是真的可能和/或生產力?

更新 餘燼導遊名單單元測試策略,在這裏: http://emberjs.com/guides/testing/unit/

在我看來,這些似乎更像集成測試。

回答

2

是的,我這樣做與我的申請。如果您還沒有看到它(上週有時會上線),您可能希望查看燼網站文檔中的新測試指南。我幫助編輯它。這個很不錯! :-)

祝你好運,讓我知道如果你需要更多的幫助,就像我說的那樣,我一直在Ember的所有部分進行單元測試。對我來說最困難的是組件,因爲它們既不是集成也不是單元,真的......它們就像一個混合:孤立的集成單元測試,仍然需要大部分的燼和渲染。

我使用警衛,茉莉花 qunit運行無頭。茉莉花是我的首選,我一直在慢慢地從qunit過來。

http://emberjs.com/guides/testing/

而且我注意到,你似乎想要的是單位隔離的外連燼本身。要做到這一點,我把你的代碼放在單獨的JavaScript庫中......否則你會遇到麻煩:畢竟如果它使用Ember,你將如何單元測試一段沒有Ember的代碼?

+0

感謝您的回覆。我想我仍然試圖精確地確定我在問什麼,但我知道我想寫一個針對不帶瀏覽器或無頭瀏覽器的燼類應用程序的測試,如上所述。也許可能尋找一個燼測試裝具?我有一些類似於你提到的策略的集成測試,但我正在努力接近單元測試。當我說單元測試時,我會考慮單獨測試。這裏的單元測試的餘燼指南,http://emberjs.com/guides/testing/unit/給我想念一個單元測試的價值,他們仍然看起來像集成測試 –

+0

是的,種。正如你所知,Ember是一個前端應用程序框架。沒有理由不能單元測試你的餘燼對象,是嗎?我不知道爲什麼沒有?我做了很多。這就像單元測試任何其他的JavaScript代碼片段。非常非常簡單。你有什麼需要幫助的? –

+0

不管你做什麼,顯然你都需要一個javascript運行時。在瀏覽器的上下文之外(甚至是無頭的)測試ember是沒有意義的,因爲這是代碼執行的地方。另外,我不確定您是否意識到這一點,但您** ** **不會遇到通常會顯示的問題,因爲瀏覽器JavaScript運行時執行JavaScript的方式與非瀏覽器運行時不同。因爲ember是一個web應用程序框架,所以你**應該**在這種情況下進行測試,恕我直言,恕我直言。 –