我想我在RSPEC bug中碰到了一个bug,而我只是第一次尝试.
在下面的示例中,RSPEC对类的名称很敏感:在parser.rb文件中使用'Parser‘测试失败,但是仅仅重命名它'FooParser’就可以工作了。
require_relative './parser.rb'
describe Parser do
it 'should do the trick' do
@parser = Parser.new "test.pas"
end
end将抱怨我的构造函数参数,即使有这样的普通代码:
class Parser
def initialize arg
end
endRSPEC错误日志如下所示:
1) Parser should do the trick
Failure/Error: @parser = Parser.new "test.pas"
ArgumentError:
wrong number of arguments(1 for 0)发布于 2012-02-07 18:12:37
在您的问题中所写的规范应该有效(顺便说一句,什么也不做),但我猜想在您的实际规范中,您试图在隐式主题中使用should,如下所示:
it 'should do the trick' do
@parser = Parser.new "test.pas"
should_not be_nil
end如果您像这样使用should或should_not,Rspec必须弄清楚您正在测试什么。它将看到您是否在描述一个类--您是这样的--并尝试实例化它--在您的例子中,使用没有参数的Parser.new。
你可能想要这样的东西:
it 'should do the trick' do
Parser.new("test.pas").should_not be_nil
end这是一个愚蠢的测试,但也许它说明了问题(可能是什么)。
https://stackoverflow.com/questions/9181327
复制相似问题