FixtureClassNotFound: класс не найден - PullRequest
1 голос
/ 16 сентября 2011

Вот моя проблема. Если я запускаю тест с помощью команды ruby, все тесты проходят. Тем не менее, если я использую тест rake: все они не работают с ошибкой ниже. Я не уверен, что мне нужно сделать по-другому, чтобы заставить их пройти при использовании граблей, но я был бы очень признателен за любые рекомендации, которые вы могли бы предложить.

#tasks_controller_test.rb
require File.dirname(__FILE__) + '/../test_helper'

class TasksControllerTest < ActionController::TestCase
    set_fixture_class :Action => 'Task'
    fixtures :Action

    setup :initialize_test

    test "the truth" do
        assert true
    end

    private
    def initialize_test
        @user = users :one
        sign_in @user
        @user.confirm!

        @task = Action :one    # Here's the line that is throwing the error.
    end
end

1) Error:
    test_the_truth(TasksControllerTest):
        FixtureClassNotFound: No class attached to find.
        test/functional/tasks_controller_test.rb:20:in `initialize_test'

Ответы [ 3 ]

1 голос
/ 16 сентября 2012

Ошибка говорит о том, что Rails не может выяснить, какой прибор загрузить для теста.

Я предполагаю, что прибор называется Action.yml. Принимает ли Rails имена файлов с заглавными буквами?

Согласно документации на http://apidock.com/rails/ActiveRecord/TestFixtures/ClassMethods/set_fixture_class, set_fixture_class ожидает имя класса, а не строку.

Итак, я бы попробовал:

set_fixture_class :myaction => Task

И я бы переименовал файл фикстуры в myaction.yml

0 голосов
/ 23 октября 2011

Похоже, никто не может решить эту проблему. Так что я просто закрываю это на этом этапе. Возможно, я переключусь на Factory_Girl или Machinist.

0 голосов
/ 24 сентября 2011

Это очень странный способ решения проблемы.

С помощью направляющих, из коробки, если у вас есть приборы, они будут загружать их перед каждым испытанием.

Вам не нужно явно загружать их в тесте контроллера.

http://guides.rubyonrails.org/testing.html#the-low-down-on-fixtures

Rails по умолчанию автоматически загружает все приборы из папка test / fixtures для вашего устройства и функционального теста. загрузка включает в себя три шага:

...