Ruby on Rails Tutorial (16)
昨晩出てた試験失敗の現象ですが、データが微妙なのだろう、と思っていたのですが、自力解決できず。StackOverflow に助けてもらいました。
- Rspec tests for administrative 'delete' links fail. Michael Hartl's ROR 3.2 Tutorial - Chapter 9.4.2
以下な出力だったんですが
1) User pages delete links as an admin user Failure/Error: it { should have_link('delete', href: user_path(User.first)) } expected link "delete" to return something # ./spec/requests/user_pages_spec.rb:140:in `block (4 levels) in <top (required)>' 2) User pages delete links as an admin user should be able to delete another user Failure/Error: expect { click_link('delete') }.to change(User, :count).by(-1) Capybara::ElementNotFound: no link with title, id or text 'delete' found # (eval):2:in `click_link' # ./spec/requests/user_pages_spec.rb:142:in `block (5 levels) in <top (required)>' # ./spec/requests/user_pages_spec.rb:142:in `block (4 levels) in <top (required)>'
as an admin user なソレを以下に修正して試験 green 終了を確認してます。
describe "as an admin user" do before(:all) { 5.times { FactoryGirl.create(:user) } } after(:all) { User.delete_all } let(:admin) { FactoryGirl.create(:admin) } before do sign_in admin visit users_path end it { should have_link('delete', href: user_path(User.first)) } it "should be able to delete another user" do expect { click_link('delete') }.to change(User, :count).by(-1) end it { should_not have_link('delete', href: user_path(admin)) } end
いやはや。