Ошибка модульного тестирования в Rails 3 - PullRequest
0 голосов
/ 22 ноября 2011

Я пытаюсь реализовать некоторые юнит-тесты в моем приложении 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)
  • test-unit-notify (0.3.0)

Ответы [ 2 ]

1 голос
/ 22 ноября 2011

Должны ли вы наследовать ActiveSupport :: TestCase, созданный вами в test_helper.rb?Это должно загрузить ваши светильники

require 'test_helper'

class SiteLayoutTest < ActiveSupport::TestCase
  test "show site layout" do
    layout = site_layouts(:one)   
  end
end
1 голос
/ 22 ноября 2011

Я думаю, вам не нужен fixtures :site_layouts звонок внутри SiteLayoutTest. Рельсы должны автоматически загружать ваши светильники.

Подробнее о светильниках в направляющих Rails .

...