rspec的更新到3.3.3
後,我得到了很多廢棄警告的..應該和should_not在rspec的3+
的should
我從改變:
describe "visiting the user index" do
before {visit users_path}
scenario{ should have_title('Sign in')}
end
到:
describe "visiting the user index" do
before {visit users_path}
scenario{ expect have_title('Sign in')}
end
我希望我的重構是可以的。
我得到了棄用警告shuold_not
,其中expect_not
不起作用。在網絡上,我一直到this頁面,但我無法理解should_not
resplacment中的想法。
反正這個例子中棄用:
describe "visiting Users#edit page" do
before { visit edit_user_path(wrong_user)}
scenario{ should_not have_title('Edit user')}
end
,這是否獲得一個未定義的方法錯誤:
describe "visiting Users#edit page" do
before { visit edit_user_path(wrong_user)}
scenario{ expect_not have_title('Edit user')}
end
嘗試'expect(page).not_to have_title('Edit user')'。 –
rspec返回:'Capybara :: RSpecMatchers :: HaveTitle實現傳統的RSpec匹配器 協議。對於當前的協議,您應該通過'failure_message'和'failure_message_when_negated'方法公開失敗消息 。' – Nir
是的,這是一個水豚問題。你需要更新你的水豚版本。 –