ruby-on-railsrspeccapybararspec-railsrspec3

How to resolve RSpec's deprecation warning about the new expect syntax?


When I run this RSpec example, it passes but I'm getting a deprecation warning.

context "should have valid detail for signup" do
  it "should give error for invalid confirm password" do
    find("#usernamesignup").set("Any_name")
    find("#mobile_number").set("1234567890")
    find("#emailsignup").set("mymail@yopmail.com")
    find("#passwordsignup").set("12345678")
    find("#passwordsignup_confirm").set("")
    find(".signin").click
    sleep 2
    page.should have_content "Confirm Password Does not Match"
  end
end

Here is the output:

Deprecation Warnings:

Using should from rspec-expectations' old :should syntax without explicitly enabling the syntax is deprecated. Use the new :expect syntax or explicitly enable :should with config.expect_with(:rspec) { |c| c.syntax = :should } instead. Called from /home/rails/rails_nimish/Devise_use/spec/features/users_spec.rb:113:in `block (4 levels) in '

enter image description here

How to resolve this warning?

Update:solution I just replaced

page.should have_content "Confirm Password Does not Match"

with:

expect(page).to have_content "Confirm Password Does not Match"

Solution

  • As the message says, you have two options:

    Side note: Don't sleep 2 before your expectation. Capybara's have_content matcher waits for you.