Ruby元编程,RSpec的“应该”如何工作?
发布时间:2020-12-16 20:08:48 所属栏目:百科 来源:网络整理
导读:我正在阅读RSpec,我正在试图找出RSpec的“应该”如何实现. 有人可以就这个功能的元素性质如何工作吗? 代码位于: http://github.com/dchelimsky/rspec/blob/master/lib/spec/expectations/extensions/kernel.rb TIA, -daniel 澄清: target.should == 5 目
我正在阅读RSpec,我正在试图找出RSpec的“应该”如何实现.
有人可以就这个功能的元素性质如何工作吗? 代码位于: http://github.com/dchelimsky/rspec/blob/master/lib/spec/expectations/extensions/kernel.rb TIA, -daniel 澄清: target.should == 5 目标的价值如何通过“应该”,反过来又是“==”? 解决方法
看看
class OperatorMatcher.
这一切都归结为Ruby,让你省略句点和括号.你真正写的是: target.should.send(:==,5) 也就是说,将消息发送到对象目标,然后将消息发送到任何应该返回的消息. 该方法应该是猴子修补到内核,所以它可以被任何对象接收.返回的匹配者应该保持在这种情况下是目标的实际. Matcher实现了方法==,它与预期的比较,在这种情况下,它是数字5.一个可以尝试自己的切割示例: module Kernel def should Matcher.new(self) end end class Matcher def initialize(actual) @actual = actual end def == expected if @actual == expected puts "Hurrah!" else puts "Booo!" end end end target = 4 target.should == 5 => Booo! target = 5 target.should == 5 => Hurrah! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容