目前我构建的有以下两行,我想为它们创建一个单元测试:
system @command.join(' ')
exit $?.exitstatus
现在我知道我可以这样做:
Kernel.should_receive(:system).with()
Kernel.should_receive(:exit).with(0)
然而,当gem调用$?.exitstatus
时,我无法模拟/存根。
有谁知道怎么做?
答案 0 :(得分:0)
基于this
你应该存根Kernel
,你应该从当前的类中存根system
。
例如
#user.rb
def self.my_test
system('ls')
end
#test
User.should_receive(:system).and_return('aaa')
User.my_test # => 'aaa'
如果不在类范围内调用<{1}},请不要忘记使用存根{/ 1}