Rspec无法识别模型

时间:2014-07-12 03:44:19

标签: ruby-on-rails rspec

我正在运行一个简单的测试来列出对象属性。

require 'spec_helper'

describe 'List Movies' do 
    it 'Lists all movies' do 

        movie1 = Movie.create(

            title: "Iron Man",
            rating: "PG-13",
            total_gross: 10000000

            )

        movie2 = Movie.create(

            title: "Super Man",
            rating: "PG",
            total_gross: 120000000

            )

        movie3 = Movie.create(

            title: "Spider Man",
            rating: "R-16",
            total_gross: 30000000

            )

        visit movies_url

        expect(page).to have_text("3 Movies")

        expect(page).to have_text(movie1.title)
        expect(page).to have_text(movie2.title)
        expect(page).to have_text(movie3.title)

        expect(page).to have_text(movie1.title)
        expect(page).to have_text(movie1.rating)
        expect(page).to have_text("10000000")


    end
end

它以未初始化的常量电影回复给我。

所以我运行了一台发电机。

rails g model Movie title:string rating:string total_gross:decimal --no-test-framework.

我再次运行测试,rspec spec/features/list_movies_spec.rb.

然而,仍然是同样的错误,我之前已经做了一百次这样的错误,为什么在运行发电机后没有识别出模型?

1 个答案:

答案 0 :(得分:1)

从Rspec 3.0开始,正在运行rails g rspec:install创建一个rails_helper.rb文件,而不是spec_helper.rb,所以你应该要求它在你的规范的顶部:

require 'rails_helper'

你会看到Rspec生成器实际上仍然创建了一个spec_helper文件,但该文件什么都不做;它主要是评论出来的。 rails_helper是加载Rails环境(包括模型)的地方。

这样做的原因是您可能有不需要加载整个Rails堆栈的规范,因此这些规范可以继续使用spec_helper文件。有一个upgrade guide for moving from rspec-rails 2.x to 3.x