【问题标题】:Unit testing error in Rails 3Rails 3 中的单元测试错误
【发布时间】:2011-11-22 12:06:12
【问题描述】:

我正在尝试在我的 rails3 应用程序中实现一些单元测试。以下是我的“test_helper.rb”文件。

ENV["RAILS_ENV"] = "test"
require File.expand_path('../../config/environment', __FILE__)
require 'rails/test_help'

class ActiveSupport::TestCase
  include Devise::TestHelpers
  fixtures :all
end

按照我的夹具文件 (site_layouts.yml)

# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html

one:
  name: layout1
  content: <html><head></head><body>layout1</body></html>

two:
  name: layout2
  content: <html><head></head><body>layout2</body></html>

以下是我的单元测试类

require 'test_helper'

class SiteLayoutTest < Test::Unit::TestCase
  fixtures :site_layouts
  test "show site layout" do
    layout = site_layouts(:one)   
  end
end

当我尝试运行 rake test:units 时出现以下错误

undefined method `fixtures' for SiteLayoutTest:Class (NoMethodError)

我对测试有点陌生。我来了

  • Rails 3.0.0
  • Linux
  • 测试单元(2.4.1、2.4.0、2.3.2、1.2.3)
  • 测试单元通知 (0.3.0)

【问题讨论】:

    标签: ruby-on-rails-3 unit-testing fixtures


    【解决方案1】:

    我认为您不需要在 SiteLayoutTest 中调用 fixtures :site_layouts。 Rails 应该会自动加载您的固定装置。

    更多关于Rails Guides中的灯具。

    【讨论】:

      【解决方案2】:

      您是否应该从您在 test_helper.rb 中创建的 ActiveSupport::TestCase 派生?这应该会自动加载您的灯具

      require 'test_helper'
      
      class SiteLayoutTest < ActiveSupport::TestCase
        test "show site layout" do
          layout = site_layouts(:one)   
        end
      end
      

      【讨论】:

        猜你喜欢
        • 2015-02-24
        • 1970-01-01
        • 1970-01-01
        • 2015-07-27
        • 1970-01-01
        • 2014-10-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多