测试是否使用RSpec接收动态方法调用

时间:2014-07-22 18:27:58

标签: ruby rspec

我正在尝试测试是否使用RSpec执行了动态方法调用。有点麻烦。

我的代码如下:

def self.parse_file
  method_name = "parse_#{get_file_type}"
  send method_name
end

def self.parse_gz
  ....
end

假设get_file_type返回“gz”,我想测试从parse_file实例方法调用parse_gz。

最初,我在想下面的事情,但我想我错了......

Class.should_receive(:parse_gz).with(Class.parse_file)

......这不起作用

非常感谢任何帮助...

1 个答案:

答案 0 :(得分:0)

您的版本不起作用,因为您从不使用参数调用parse_gz。请尝试:

Class.should_receive(:parse_file)

Class.should_receive(:send).with('parse_gz')

此外,我建议使用新的allow(thing).to receive(method)语法,而不是旧的thing.should_receive(method)语法。