【问题标题】:Where's the official doc for RSpec's instance_double method that outline how you can configure the method's return value?RSpec 的 instance_double 方法的官方文档在哪里概述了如何配置方法的返回值?
【发布时间】:2022-01-16 15:34:05
【问题描述】:

对于规范中的以下代码:

let(:my_model) { instance_double(MyModel, is_happy: true) }

我想确认is_happy: true 到底做了什么。

我认为它存根 MyModel double 的 is_happy 实例方法并使其始终在规范中返回 true,但我希望看到官方 RSpec 文档确认这一点。

我可以看到这个RSpec doc,但它没有提到方法存根部分。

此文档在文档中的哪个位置进行了记录,我应该如何在 RSpec 中浏览文档?

【问题讨论】:

  • 您链接的文档确实告诉您像您描述的那样被存根的方法:instance_double 是最常见的验证双精度类型。它将类名或对象作为其第一个参数,然后验证任何被存根的方法 是否存在于该类的实例上。此外,当它接收到消息时,它会验证方法签名是否支持提供的参数,包括数量和允许或必需的关键字参数(如果有)。
  • @spickermann 谢谢,但我更喜欢寻找确切的方法定义,就像下面答案中描述的 max 一样

标签: ruby rspec


【解决方案1】:

来自Yard documentation

instance_double(doubled_class, stubs)

参数:

  • doubled_class(字符串,类)
  • 存根(哈希)——消息/返回值对的哈希

is_happy: true 将在发送消息is_happy 时双重返回true

RSpec 既有 Yard 从代码生成的常规 API 文档,也有您链接的指南样式文档。在一个有据可查的项目中同时拥有这两者是很常见的,因为它们有不同的用途。

【讨论】:

  • 谢谢,这正是我要找的。​​span>
猜你喜欢
  • 2012-03-21
  • 1970-01-01
  • 1970-01-01
  • 2020-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-30
相关资源
最近更新 更多