我正在嘗試使用Jasmine進行單元測試,以編寫用coffeescript編寫的小應用程序。我發現很多消息來源說單元測試可以完美地完成從coffeescript編譯的JS。你如何訪問JS代碼的數據和邏輯,如果所有東西都被封裝在匿名函數中以避免污染名稱空間?是每次只用-b標誌運行編譯器的唯一解決方案嗎?Coffeescript +單元測試:全局變量?
8
A
回答
9
您應該根據您從CoffeeScript模塊公開的公共接口進行測試。如果你的模塊被稱爲Foo
並公開兩個公共方法,bar
和baz
,你可以按照以下方式將其導出:
Foo =
bar: (a, b) ->
#implementation
baz: (c) ->
#implementation
(exports ? this).Foo = Foo
當然也有對這種模式其他變化。例如,請參閱underscore.coffee。現在你已經暴露了你的公共接口,只要以適當的方式將它提供給你的Jasmine測試。如果您使用茉莉花節點,例如,你會做以下幾點:然後
Foo = require('foo') #assuming your module is compiled to foo.js
你的測試將調用Foo.bar
和Foo.baz
。
3
在有些情況下是有意義的使用-b
極少數情況下,普通的測試不是其中之一。 lawnsea非常正確,您應該輸出您測試的所有內容(將其附加到Node下的exports
或瀏覽器中的window
)。它和任何編程語言一樣,真的。
對於Jasmine和CoffeeScript,特別是與jQuery結合使用時,您應該看看InstantJasmineCoffee項目和this related blog post。
3
我只是偶然發現了這一點,但如果你正在尋找上手茉莉+ CoffeeScript的就便宜,你可以看看這個骨架末日應用程序,我發佈到Github上。它使用機架過濾器動態編譯CoffeeScript。例如規格&指令包括:https://github.com/searls/jasmine-coffee
相關問題
- 1. Coffeescript,nodeunit和全局變量
- 2. CoffeeScript單元測試?
- 3. Xcode C++使用全局變量進行單元測試
- 4. 茉莉花單元測試中沒有指定全局變量
- 5. 爲具有全局變量的方法創建單元測試
- 6. 在Python單元測試框架中修改全局變量
- 7. 在ruby單元測試中訪問全局變量
- 8. 如何使用全局變量的單元測試函數?
- 9. Ruby on Rails中Coffeescript的全局變量
- 10. 測試$?在Ruby rspec的全局變量
- 11. 如何用Mocha測試全局變量?
- 12. 在全局變量中運行測試
- 13. 變量在單元測試
- 14. 茉莉花單元測試定義了作爲全局變量導入的庫
- 15. 單元測試類僅使用局部變量進行組合
- 16. jQuery - 簡單全局變量
- 17. Python檢測變化(全局)變量
- 18. Python單元測試類變量
- 19. 單元測試 - 引用類「類」變量
- 20. 單元測試會話變量
- 21. iOS單元測試實例變量
- 22. java全局全局變量和用戶全局變量
- 23. 全局變量
- 24. 全局變量。
- 25. 全局變量
- 26. 全局變量
- 27. 全局變量
- 28. 全局變量
- 29. 全局變量
- 30. 全局變量
博客文章的鏈接是404,現在... – number5 2011-11-09 13:21:46