gpt4 book ai didi

ruby - 如何使用 RSpec 测试无效参数引发 ArgumentError 异常?

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

我正在编写一个 RubyGem,如果提供给其单一方法的参数无效,它可以引发 ArgumentError。我如何使用 RSpec 为此编写测试?

下面的例子展示了我想到的那种实现方式。 bar 方法需要一个 bool 参数 (:baz),检查其类型以确保它实际上是一个 bool 值:

module Foo
def self.bar(options = {})
baz = options.fetch(:baz, true)
validate_arguments(baz)
end

private
def self.validate_arguments(baz)
raise(ArgumentError, ":baz must be a boolean") unless valid_baz?(baz)
end

def self.valid_baz?(baz)
baz.is_a?(TrueClass) || baz.is_a?(FalseClass)
end
end

最佳答案

我使用类似于 JHurra 发布的东西:

it "should raise ArgumentError for arguments that are not boolean" do
expect{ Foo.validate_arguments(nil) }.to raise_error(ArgumentError)
end

无需别名(rspec 1.3)。

关于ruby - 如何使用 RSpec 测试无效参数引发 ArgumentError 异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2843255/

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