Rspec新手问题

时间:2011-09-26 20:04:01

标签: ruby-on-rails ruby rspec

我正在查看一些rspec示例代码并遇到了这个 -

lambda { 
  @my_object.function
}.should raise_error(ArgumentError, "Unknown tag type")

这是否意味着rspec monkey会修补Proc个对象?或者我怎样才能调用should方法?

2 个答案:

答案 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

有关Kernel http://ruby-doc.org/core/classes/Kernel.html

的更多信息