我在使用这个简单的测试传递RSpec 2.8时遇到了问题。
我想为需要它们的方法缺少参数编写一个简单的测试(即ArgumentError:错误的参数数量('y'代表'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)>'
我在这里缺少什么?
答案 0 :(得分:27)
您需要将块传递给#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