我正在查看一些rspec示例代码并遇到了这个 -
lambda {
@my_object.function
}.should raise_error(ArgumentError, "Unknown tag type")
这是否意味着rspec monkey会修补Proc
个对象?或者我怎样才能调用should
方法?
答案 0 :(得分:2)
我可能不会称之为猴子修补,因为它扩展了核心ruby Object类。但是:是的,rspec将在Object上定义should方法,所以任何东西都可以说它应该是“某事”
1.should eq(2)
class MySuperObject
end
MySuperObject.new.should_not respond_to(:monkey!)
答案 1 :(得分:0)
由于所有内容都响应Proc
,所以它不太可能特别是猴子补丁should
。这种行为真的很重要吗?无论如何,一个简单的选择就是只看一眼来源。 https://github.com/dchelimsky/rspec,具体为https://github.com/dchelimsky/rspec/blob/master/lib/spec/expectations/extensions/kernel.rb