在minitest中使用帮助器

时间:2015-04-03 17:38:07

标签: ruby-on-rails unit-testing minitest

我正在尝试使用minitest测试我的应用类,但我收到一条错误,指出undefined method image_path。我怎么能绕过这个?

app_test.rb

require 'test_helper'

class AppTest < ActiveSupport::TestCase

  setup do
    @app = apps(:app_one)
  end

  test 'should have icon_url' do
    assert(@app.icon_url == image_path('icn-medium-norm.png'))
  end
end

的应用程序/模型/ app.rb

class App < ActiveRecord::Base
  has_many :versions, dependent: :destroy
  has_many :user_subscriptions, dependent: :destroy
  has_many :users, through: :user_subscriptions
  validates :name, uniqueness: { case_sensitive: false, scope: :app_type }

  scope :since, ->(time) { where('created_at > ?', time) }
  scope :ios, -> { where("app_type = 'ios' ") }
  scope :android, -> { where("app_type = 'android' ") }

  def icon_url
    versions.last[:icon_url] || image_path('icn-medium-norm.png')
  end
     ...
end

即使我做了像

这样的事情
test 'should have icon_url' do
  assert(@app.icon_url =~ %r{.png})
end

由于应用模型

,我得到了同样的错误

1 个答案:

答案 0 :(得分:2)

尝试:

assert_equal @app.icon_url, ApplicationController.helpers.image_path('icn-medium-norm.png')

参考:https://stackoverflow.com/a/7465398/429758