如何在Rspec中模拟一个类之外的方法?

时间:2016-11-14 16:42:18

标签: ruby rspec rspec3

我必须模拟一个与任何类无关的方法。有人能帮助我吗?

这是这样的:

#device.rb
require_relative 'common'
class Device

  def connect_target(target)
    status = connect(target)
    return status
  end

end

#common.rb
def connect(target)
  puts "connecting to target device"
end

我必须在设备类中为“connect_target”编写单元测试 通过模拟common.rb的外部方法

1 个答案:

答案 0 :(得分:1)

  

我必须模拟一个与任何类无关的方法。

没有与任何模块无关的方法。 Ruby中只有一种方法:模块的实例方法(或类,即模块)。

connect被定义为private的{​​{1}}实例方法。

你会嘲笑这样的事情:

Object

请注意,无论如何,定义方法并不重要:此处未提及allow(some_device).to receive(:connect) Device