首页 文章

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

提问于
浏览
0

我正在处理的代码如下:

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

    B的第一个存根 any_instance

    B.any_instance.stubs(:get_news)
    

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

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

    将任何值传递给 with() ,您期待 get_news 方法随之而来 .

相关问题