如何使用rspec存根函数调用?

时间:2013-12-19 22:36:23

标签: ruby rspec stub

我正在处理的代码如下:

class A
  def get_news

    when self.type = 'TypeA'
        param1 = 'a'
        param2 = 'b'
    else
        param1 = 'c'
        param2 = 'd'
    end

    @news ||= B.new.get_news(param1, param2)
  end
end

我希望能够测试正确的参数是否传递给B#get_news。 你知道一种存根函数调用的方法,所以我可以测试它是用正确的参数调用的,而不是用正确的参数测试请求吗?

我花了一些时间在上面,我无法找到办法。

事先,谢谢!

1 个答案:

答案 0 :(得分:0)

B的第一个存根any_instance

B.any_instance.stubs(:get_news)

然后让规范调用你的方法。然后,您可以验证是否使用get_news调用了expect_any_instance_of

expect_any_instance_of(B).to receive(:get_news).with(..., ...)

将期望with()方法的get_news传递给{{1}}。