FixtureClassNotFound:找不到附加的类

时间:2011-09-16 06:56:12

标签: ruby-on-rails-3 functional-testing

这是我的问题。如果我使用ruby命令运行测试,测试全部通过。但是,如果我使用rake测试:函数它们都会失败并出现以下错误。我不确定在使用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 个答案:

答案 0 :(得分:1)

该错误表明Rails无法确定要为测试加载的夹具。

我假设灯具名为Action.yml。 Rails是否接受具有大写字母的夹具文件名?

根据http://apidock.com/rails/ActiveRecord/TestFixtures/ClassMethods/set_fixture_class的文档,set_fixture_class需要一个类名而不是一个字符串。

所以我会尝试:

set_fixture_class :myaction => Task

我将夹具文件重命名为myaction.yml

答案 1 :(得分:0)

这是处理问题的一种非常奇怪的方式。

使用导轨,开箱即用,如果你有固定装置,他们会在每次测试前加载它们。

您无需在控制器测试中明确加载它们。

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

  

默认情况下,Rails会自动加载所有灯具   您的单元和功能测试的test / fixtures文件夹。载入中   涉及三个步骤:

答案 2 :(得分:0)

看起来没有人能够解决这个问题。所以我现在只是关闭它。也许我会切换到Factory_Girl或Machinist。