看起来rspec没有向方法传递任何参数,即使它们是在spec文件中写的。
方法:
def echo(msg)
msg
end
测试:
require './echo.rb'
describe echo do
it 'echoes' do
expect(echo('hello')).to eq('hello')
end
end
终端输出:
/home/.../scratch/echo.rb:1:in `echo': wrong number of arguments (0 for 1) (ArgumentError)
from /home/.../scratch/scratch_spec.rb:3:in '<top (required)>'
from /home/.../.rvm/gems/ruby-2.2.1/gems/rspec-core-3.4.1/lib/rspec/core/configuration.rb:1361:in 'load'
...
答案 0 :(得分:2)
你应该改变:
describe echo do
为:
describe 'echo' do
即。将方法名称作为字符串。否则,它会尝试在此时调用echo
方法,并且您不会在此处传递参数,因此您会收到上述错误。
所以,这应该是完美的:
describe 'echo' do
it 'echoes' do
expect(echo('hello')).to eq('hello')
end
end