6
我想測試使用Minitest(minitest-rails
)的助手方法 - 但助手方法取決於current_user
, a Devise helper method available to controllers and view。Minitest的測試助手方法
應用程序/傭工/ application_helper.rb
def user_is_admin? # want to test
current_user && current_user.admin?
end
測試/助理/ application_helper_test.rb
require 'test_helper'
class ApplicationHelperTest < ActionView::TestCase
test 'user is admin method' do
assert user_is_admin? # but current_user is undefined
end
end
請注意,我能夠測試不依賴其它輔助方法在current_user
。
感謝您的答案中的額外信息!並且非常感謝'minitest-rails' !!你會在這裏使用什麼術語(比如* stubbing *),因爲我們對'current_user'做了什麼?順便說一下,我將'current_user'作爲'private'方法,並且在ApplicationHelperTest中使用全局變量('@admin = false')來控制'current_user'返回的內容('FactoryGirl.create(@admin? :admin::user)') - 所以當我想改變行爲時,我設置了'@admin = true',並在完成時將其設置回。 – user664833
我沒有任何術語。這只是一種方法。你的幫助器方法依賴於它的存在。 – blowmage
+1提及Helpers必須作爲ActionView :: TestCase的一個實例進行測試。我習慣於rspec並且忘記了那個;-) – awenkhh