我正在編寫缺少翻譯查找的測試 - 而且我是RSpec的初學者。換句話說,我寫了一個規範,在視圖中,所有可見的文本都通過translate方法傳遞。在RSpec2控制器測試中(使用render_views),找到視圖實例
我不是指缺少翻譯,但缺少翻譯一下起坐(源代碼缺乏調用#T或#translate方法)。
爲了做到這一點,我想存根i18n的翻譯方法化(I18n#T)。
爲了做到這一點,我怎麼找RSpec2使用視圖實例?該視圖實例包含模塊ActionView :: Helpers :: TranslationHelper。如果我可以訪問該視圖對象,我可以(我認爲)存根其翻譯方法。順便說一句,我想我應該從@controller開始。
一切都在規範否則以通常的方式(包括失敗的測試)工作,除了尋找和磕碰視圖的轉換的輔助方法,#T。我正在使用render_views。
我試圖(以各種方式)#helper,#translate和#view。也許我錯過了什麼?
中的ObjectSpace搜索(在我的測試)與方法#translate所有對象,我能搶的對象,因爲它的類的I18n ::後端::簡單。所以我的規範工作,但它會快很多,假設代碼不必搜索ObjectSpace!
作爲背景,目前爲止,最簡單的測試計劃似乎是遍歷操作的每個控制器,在一個RSpec控制器測試,並查找可見字母字符。首先,將存根Rails translate助手返回空字符串。此外,還可以剝離標籤名稱以及任何腳本和樣式標籤。
我的Gemfile包含水豚1.1.4,水豚-webkit 0.12.1,factory_girl 4.1.0, factory_girl_rails 4.1.0,rails 3.2.9,rspec 2.12.0,rspec-rails 2.12.0。