gpt4 book ai didi

ruby - RSpec 与我的自定义错误类

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

在 RSPec 中我有这个:

expect{obj.my_method}.to raise_error(Module::Error::MyErrorClass)

我的测试失败了:

expected Module::Error::MyErrorClass, got #<RuntimeError: My error message.

我想要类似的东西

expect{obj.my_method}.to raise_error(Module::Error::MyErrorClass.message)

但在那种情况下,测试只是失败而没有任何特定消息。我怎样才能让它通过?

我的错误类如下:

module Module
module Error
class MyErrorClass < StandardError
def self.message
raise "My error message."
end
end
end
end

最佳答案

您的错误类的message 方法应该只是define a string - 即

module Module
module Error
class MyErrorClass < StandardError
def message
"My error message."
end
end
end
end

现在,假设这个异常确实被引发了,下面的任何一个都应该起作用:

expect{obj.my_method}.to raise_error(Module::Error::MyErrorClass)
expect{obj.my_method}.to raise_error(Module::Error::MyErrorClass.new.message)
expect{obj.my_method}.to raise_error("My error message.")
expect{obj.my_method}.to raise_error(Module::Error::MyErrorClass, "My error message.")

(Link 到此匹配器的 RSpec 文档。)

关于ruby - RSpec 与我的自定义错误类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39561766/

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