如何测试该URI仅被调用一次

时间:2017-10-07 22:40:37

标签: ruby rspec mocking

我有这个方法:

def url
  @url ||= URI("#{API_BASE}/#{url_token}")
end

我想使用rspec测试URI只被调用一次。但是,由于URI是一个模块,我不知道如何模拟它。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

你为什么要测试?这看起来像是一个非常荒谬的事情,首先测试,没有冒犯,因为在字符串上运行URI的成本几乎为零。只要该函数返回的值与您期望的值相同,例如具有正确属性集的URI实例,您就应该认为这是成功的。

如果你因为某种原因真的死定了那么你需要考虑如何区分错误写入的函数和正确编写的函数,至少通过正确的定义(例如没有重复的调用)。

我建议您做一些事情,确认调用它10次会使完全相同的object_id值。