0
我在Michael Hartl的Rails教程的第7.2.2節(第7章)中,當我將@user變量添加到app/controllers/users_controller.rb
時,事情變得很奇怪。現在應該通過的測試不會 - 因爲其他原因而失敗:Rails教程7.2.2 UsersController問題
$ rspec spec/requests/user_pages_spec.rb -e "signup page"
Failures:
1) User pages signup page
Failure/Error: before { visit signup_path }
ActionView::Template::Error:
undefined method `users_path' for #<#<Class:0x007fdec372a8e0>:0x007fdec375d010>
# ./app/views/users/new.html.erb:6:in `_app_views_users_new_html_erb___2884421820517152565_70297369620580'
# ./spec/requests/user_pages_spec.rb:8:in `block (3 levels) in <top (required)>'
2) User pages signup page
Failure/Error: before { visit signup_path }
ActionView::Template::Error:
undefined method `users_path' for #<#<Class:0x007fdec372a8e0>:0x007fdec45caee0>
# ./app/views/users/new.html.erb:6:in `_app_views_users_new_html_erb___2884421820517152565_70297369620580'
# ./spec/requests/user_pages_spec.rb:8:in `block (3 levels) in <top (required)>'
最初,這些測試失敗b/c @user爲零。現在由於未定義的方法而失敗。
這本書建議他們應該通過一次我定義@user,所以我很困惑。我推動了一些想法,也許這會自行解決,但事實並非如此,所以我想在繼續之前弄清楚這一點。
這裏有問題(從書上抄)測試:
require 'spec_helper'
describe "User pages" do
subject { page }
describe "signup page" do
let(:user) { FactoryGirl.create(:user) }
before { visit signup_path }
it { should have_selector('h1', text: 'Sign up') }
it { should have_selector('title', text: full_title('Sign up')) }
end
end