我正在运行一个简单的测试来列出对象属性。
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.
然而,仍然是同样的错误,我之前已经做了一百次这样的错误,为什么在运行发电机后没有识别出模型?
答案 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