我有3個控制器,其中包括相同的模塊。在一個地方單位的模塊:導軌3 - 如何測試控制器模塊?
如何我測試測試?
我應該寫3次相同的功能測試的每個控制器(未DRY)?
的TestController/TestController1/TestController2:
class TestController < ApplicationController
include TestModule
test_module :test, :only => [:index]
...
end
TestModule:
module TestModule
extend ActiveSupport::Concern
module ClassMethods
private
def test_module(resource, options = {})
self.before_filter(options.slice(:only, :except)) do
puts 'test_module'
end
end
end
end
提前感謝!
感謝您的回答。我將爲我的控制器編寫測試。但是,如何爲我的模塊編寫單獨的測試(使用Test:Unit)?我必須嘲笑一個控制器?如果是的話,我應該在哪裏放這些測試,等等? – invaino
這樣想:爲一個模塊寫一個測試就像爲一個模型寫一個測試。他們都在裏面有方法。所以當你調用或傳遞參數到一個方法中時,你希望某個結果不在方法中,這就是你應該在模塊中測試的東西。所以如果我調用'TestModule.create_something_amazing'並期望它爲我創造出驚人的東西,那麼測試應該驗證它是否符合我的期望。這些測試應該放在'Unit/lib'文件夾中,因爲你的模塊應該放在你的Rails應用的'lib'目錄下按照慣例 – iwasrobbed
我測試過我的模型模塊,就像你說的那樣。但我不明白如何測試這個特定的模塊。因爲它是一個控制器的類方法。我需要控制器實例來驗證它的完整性,我不明白我該怎麼做。我不能在一個單元測試中調用test_module方法,它不起作用:( – invaino