RSpec Ruby中关键字"应该"究竟是什么?

woo*_*tok 10 ruby rspec

我是Ruby的初学者,有这个问题唠叨了我很久.

在RSpec文件中,如果我们写Book.should <do something>,should关键字是什么?它是Book对象的成员吗?它是如何成为Book对象的成员的?或者它是Ruby的一些构造?这是一个功能吗?如果它是函数或成员,我在哪里可以找到它的定义?

Hol*_*ust 11

加载后,RSpec 在模块中包含一个模块,Kernel模块包含在Ruby已知的所有对象中.因此,它可以使should方法可用于所有对象.这样,should不是关键字(如if,classend),但常规方法.

请注意,mixin仅在RSpec上下文中可用,因为它在加载或RSpec期间被"修补".