Я хотел протестировать метод в своем классе помощников, но когда я что-то вроде:
require 'test_helper'
class ApplicationHelperTest < ActionView::TestCase
def test_flash_messages
flash[:notice] = "Hello World"
assert_equal "<div class=\"message-notice\">Hello World<\/div>", flash_messages
end
end
, я получаю "NoMethodError: неопределенный метод` flash 'для nil: NilClass "
Но когда я делаю что-то вроде:
flash = {}
flash[:notice] = "Hello World"
assert_equal "<div class=\"message-notify\">Hello World<\/div>", flash_messages
я получаю то же сообщение об ошибке, но оно вызывается в "application_helper.rb: 6: in` flash_messages '"
Кстати, мойapplication_helper выглядит следующим образом:
module ApplicationHelper
def flash_messages
fl = ''
flash.each do |key,msg|
if flash[key]
fl = fl + "<div class=\"message-#{key}\">#{msg}</div>"
end
flash[key] = nil
end
return fl
end
end
Это работает на веб-сайте, но я хочу иметь возможность протестировать этот метод с модульным тестом.