gpt4 book ai didi

ruby - RSpec 在带参数的方法上测试 ArgumentError

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

我在让这个简单的测试通过 RSpec 2.8 时遇到了问题。

我想编写一个简单的测试来检测需要参数的方法是否缺少参数(即 ArgumentError:参数数量错误('x' 代表 'y'))。

我的测试是像这样测试一个 Gem 模块方法:

describe "#ip_lookup" do
it "should raise an ArgumentError error if no parameters passed" do
expect(@geolocater.ip_lookup).to raise_error(ArgumentError)
end
end

我的 gem 模块代码如下所示:

module Geolocater
def ip_lookup(ip_address)
return ip_address
end
end

我的规范使用此输出运行。

Failure/Error: expect(@geolocater.ip_lookup).to raise_error(ArgumentError)
ArgumentError:
wrong number of arguments (0 for 1)
# ./lib/geolocater.rb:4:in `ip_lookup'
# ./spec/geolocater_spec.rb:28:in `block (3 levels) in <top (required)>'

我在这里错过了什么?

最佳答案

您需要将一个 block 传递给#expect,而不是常规参数:

describe "#ip_lookup" do
it "should raise an ArgumentError error if no parameters passed" do
expect { @geolocater.ip_lookup }.to raise_error(ArgumentError)
end
end

关于ruby - RSpec 在带参数的方法上测试 ArgumentError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8822085/

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