gpt4 book ai didi

ruby-on-rails - 在 RSpec 中,如何在 "expect to be true"失败时打印自定义消息?

转载 作者:数据小太阳 更新时间:2023-10-29 08:22:26 28 4
gpt4 key购买 nike

我正在使用 RSpec 3.2.0 并且我有这个测试:

  it "has a webhook_payload method" do
Project.subclasses.each { |project_class|
expect(project_class.method_defined? :webhook_payload).to be true, "#{project_class} is a Project subclass that does not have a required 'webhook_payload' method defined."
}
end

当我运行它时,它给我这个错误:

 Failure/Error: expect(project_class.method_defined? :webhook_payload).to be true, "#{project_class} is a Project subclass that does not have a required 'webhook_payload' method defined."
ArgumentError:
wrong number of arguments (2 for 1)

我找到了关于如何使用自定义错误消息的文档,除非我有错字,否则我觉得我正在正确地按照说明进行操作:https://www.relishapp.com/rspec/rspec-expectations/v/3-2/docs/customized-message

如何在测试失败时打印自定义消息?

此外,我对 ruby​​ 和 rspec 还很陌生。如果有更惯用的方式来编写此测试,请告诉我。

最佳答案

它认为您的消息是 be 方法的第二个参数,而不是 to 方法。

true 括在括号中,它应该可以工作,或者像其他答案建议的那样使用 be_true

expect(project_class.method_defined? :webhook_payload).to be(true), "#{project_class} is a Project subclass that does not have a required 'webhook_payload' method defined."

关于ruby-on-rails - 在 RSpec 中,如何在 "expect to be true"失败时打印自定义消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30265272/

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