2014-06-25 81 views
0

作爲我嘗試學習web開發的一部分,我已經達到了一個目的,我有一些我想在我的rails環境中測試的coffeescript類。是否可以用茶匙使用factory_girl.js?

我有一個軌道4.03應用程序,我一直在努力(它是基於軌道tutorial)。 在學習rails的過程中,我習慣了使用rspec和FactoryGirl,所以我想盡可能的遵循類似的流程來做coffeescript。

我把所有的咖啡書都寫成了單獨的類,每個類都有自己的文件,所以我認爲它們應該是可測試的。

我目前已安裝teaspoon,這看起來很像rspec。我有一些基本的測試工作,但現在我需要開始編寫真正的測試。 Teaspoon支持燈具,但我注意到有一個名爲factory_girl的node.js包,它似乎是rspec的紅寶石FactoryGirl的一個端口。我使用npm -install安裝了這個軟件包,現在我已經將它列在我的rails文件夾下的「node_modules」下。

有人能告訴我是否可以使用這個軟件包來生成用茶匙測試的對象,如果是這樣的話?

更新: 我正在接受標記下面的答案,因爲我能夠讓FactoryGirl運行。 我所做的是(正如答案中所建議的那樣)是將factory_girl.js文件複製到資產管道spec/javascripts/support加載的位置,然後在spec/javascripts/spec_helper.coffee中要求它文件。

問題是,功能似乎不匹配在rails中發生的情況(除非我完全忘記它在rails中的工作方式)。在Rails中,我可以爲一個模型定義一個工廠,並且創建的對象將是我與工廠關聯的類的實例。這裏似乎沒有任何與我試圖生成實例的類的關聯。例如,只有我在工廠定義中定義的屬性可用,並且沒有在對象上定義任何方法。 我可能會做一些完全錯誤的事情,或者嘗試使用coffeescript以某種方式破壞它。

回答

2

茶匙不使用節點(主要),並且主要是基於跑步者基礎的導軌。在rails層之上,它使用Jasmine,Mocha或QUnit作爲瀏覽器測試框架。

試圖加載一個節點模塊並不是那麼容易,或者在某些情況下是可能的。如果factory_girl.js可以在理論上加載到瀏覽器中,則可以在規範助手中要求該文件(如果它位於資產路徑中),然後根據需要使用它。

免責聲明:我是Teaspoon的主要作者,但從未使用過factory_girl.js(但使用過factory_girl的寶石)。

+0

@jejacksOn ...我正在四處尋找文件,並看到了factory_girl.js文件,並且正在考慮同樣的事情(試圖納入)。我所做的就是將factory_girl.js文件複製到spec/javascripts/support中,然後將#= require support/factory_girl添加到spec_helper.coffee文件中,我認爲它可以工作。讓我嘗試一些事情,如果確實有效,我會將其標記爲答案。謝謝! – nPn