tho*_*nch 14 ruby unit-testing rspec
我在让这个简单的测试传递给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
Run Code Online (Sandbox Code Playgroud)
我的gem模块代码如下所示:
module Geolocater
def ip_lookup(ip_address)
return ip_address
end
end
Run Code Online (Sandbox Code Playgroud)
我的规格与此输出一起运行.
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)>'
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么?
Joh*_*ohn 30
你需要传递一个块#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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6975 次 |
最近记录: |