假设我有类似的定义:
class Foo
def init(val)
@val = val
end
def self.bar
:bar
end
def val
@val
end
end
的规格如下:
describe Foo
it { should respond_to(:val) }
it { should respond_to(:bar) }
end
第二个it
断言失败。从RSpec的文档中我不清楚respond_to
应该在类方法上失败。
答案 0 :(得分:18)
现在建议我们使用expect,就像这样:
describe Foo do
it 'should respond to :bar' do
expect(Foo).to respond_to(:bar)
end
end
请参阅:http://rspec.info/blog/2012/06/rspecs-new-expectation-syntax/
OLD ANSWER:
实际上,您可以通过提供主题来实现此方法:
describe Foo do
subject { Foo }
it { should respond_to :bar } # :bar being a class method
end
答案 1 :(得分:10)
你的例子应该是这样写的:
it 'should respond to ::bar' do
Foo.should respond_to(:bar)
end