2013-12-20 42 views
1

問題 我在Rails 3.2上,正在使用gem'gon'和'jasminerice'。如何在設置gon數據的地方模擬控制器代碼,以及如何確保在通過jasminerice進行測試時,我的javascript文件可以使用此gon數據?如何在Rails中使用gon與Jasminerice?

答案 我自己想出瞭解決方案,並且只是在這裏發佈以節省時間和挫折感。第一步是創建一個'輔助方法'(即SpecHelper模塊,參見https://github.com/bradphelan/jasminerice),它以模仿控制器代碼的方式設置gon變量;我們稱之爲'helper1'。第二個步驟是創建具有標題如下夾具(確保將其加載到通過「loadFixtures」你的天賦):

<head> 
    <% helper1() %> 
    <%= include_gon() %> 
</head> 

的關鍵是之前把調用的輔助方法'include_gon'一行。

+0

我不知道這是如何工作的......因爲一個夾具文件是一個'.html'文件,而不是'.html.erb'文件,所以它如何實際插入像'<%= include_gon% >'? – james

回答

-1

如果您需要關注Jasmine中的Rails控制器,那就錯了。

Jasmin是用於Javascript的單元測試。單元測試中的依賴性應該降至最低。在前端單元測試中混合使用服務器邏輯是一個很大的問題。

更好的方法是使用夾具或工廠來提供所需的數據/上下文。

如果你需要測試整合,使用水豚,這也不需要這樣的黑客。

+0

實際上正在使用夾具(第二步)。我所說的'控制器代碼'就是爲了準備坤。 – pdavidow

相關問題