应该和不应该在rspec 3 +

时间:2015-08-15 12:22:12

标签: ruby-on-rails ruby-on-rails-4 rspec rspec3

将rspec更新为3.3.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

1 个答案:

答案 0 :(得分:0)

如果您定义了主题,则可以使用is_expected.not_to,或使用较长版本expect(page).not_to

describe "visiting Users#edit page" do
  before { visit edit_user_path(wrong_user)}
  scenario{ is_expected.not_to have_title('Edit user')}
end

查看betterspecs中的expect VS should section