在RSpec中,存根有什么区别!和存根?

Blu*_*ish 9 ruby rspec rspec2

我已经看过很多次了,从来没有真正停下来质疑它.现在让我想知道存根和存根之间是否存在差异!

在那儿?还是历史性的?存根!意味着它存在一次?并返回正常的方法调用?

num*_*407 13

在版本2和v1.3.2中,它们只是彼此的别名.在v1.3.2中stub是别名stub!

https://github.com/dchelimsky/rspec/blob/v1.3.2/lib/spec/mocks/methods.rb#L12

而在rspec 2的v2.6中,stub!是别名stub

https://github.com/rspec/rspec-mocks/blob/master/lib/rspec/mocks/methods.rb#L12

但是在v1.1.4中,stub是一个别名mock,并且stub!是一个单独的方法.从文档中可以看出,stub!在这个早期版本中,用于向现有对象添加方法,创建了"部分模拟".

解释:https:
//github.com/dchelimsky/rspec/blob/1.1.4/lib/spec/mocks.rb#L43

定义:
https://github.com/dchelimsky/rspec/blob/1.1.4/lib/spec/mocks/spec_methods.rb#L27
https://github.com/dchelimsky/rspec/blob/1.1.4/ LIB /规格/嘲笑/ methods.rb#L12