Ruby on Rails Tutorial (16)

昨晩出てた試験失敗の現象ですが、データが微妙なのだろう、と思っていたのですが、自力解決できず。StackOverflow に助けてもらいました。

以下な出力だったんですが

  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

いやはや。