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

问题描述 投票:0回答:1

我正在处理的代码如下:

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。您是否知道对函数调用进行存根的一种方法,因此我可以测试使用正确的参数调用它,而不是测试使用正确的参数发出的请求?

我花了一些时间,但找不到解决方法。

ruby rspec stub
1个回答
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。>

© www.soinside.com 2019 - 2024. All rights reserved.