gpt4 book ai didi

ruby-on-rails - 如何解决RSpec关于新的Expect语法的弃用警告?

转载 作者:行者123 更新时间:2023-12-03 16:03:56 26 4
gpt4 key购买 nike

当我运行此RSpec示例时,它通过了,但是我收到了弃用警告。

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

这是输出:

弃用警告:

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

如何解决此警告?

更新:解决方案
我刚更换

page.should have_content "Confirm Password Does not Match"



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

最佳答案

如消息所示,您有两个选择:

  • 明确配置RSpec允许.should。不要使用该选项; .should已被弃用,将来可能不会得到很好的支持。但是,如果您确实想允许.should,可以通过将其添加到spec_helper.rb中(或编辑可能已经存在的rspec-mocks的示例配置)来做到这一点:
    RSpec.configure do |config|
    config.expect_with :rspec do |expectations|
    expectations.syntax = :should
    end
    end

    如果要同时使用expect.should,请设置
    expectations.syntax = [:expect, :should]

    但是不要那样做,选择一个并在测试套件中的任何地方使用它。
  • 将您的期望重写为
    expect(page).to have_content "Confirm Password Does not Match"

    如果您有许多需要升级其语法的规范,则可以使用the transpec gem自动完成。

  • 旁注:不要在您的期望之前 sleep 2Capybara's have_content matcher waits for you.

    关于ruby-on-rails - 如何解决RSpec关于新的Expect语法的弃用警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35379535/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com