RSpec 的 instance_double 方法的官方文档在哪里概述了如何配置方法的返回值?
Posted
技术标签:
【中文标题】RSpec 的 instance_double 方法的官方文档在哪里概述了如何配置方法的返回值?【英文标题】:Where's the official doc for RSpec's instance_double method that outline how you can configure the method's return value? 【发布时间】: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 一样 【参考方案1】:来自Yard documentation:
instance_double(doubled_class, stubs)
参数:
doubled_class(字符串,类) 存根(哈希)——消息/返回值对的哈希
is_happy: true
将在发送消息is_happy
时双重返回true
。
RSpec 既有 Yard 从代码生成的常规 API 文档,也有您链接的指南样式文档。在一个有据可查的项目中同时拥有这两者是很常见的,因为它们有不同的用途。
【讨论】:
谢谢,这正是我要找的。span>以上是关于RSpec 的 instance_double 方法的官方文档在哪里概述了如何配置方法的返回值?的主要内容,如果未能解决你的问题,请参考以下文章
rails-rspec 错误无法加载此类文件 -- rspec/core/formatters/progress_formatter
我无法使用 'bundle exec rspec' 执行 rspec
RSpec vs Cucumber(RSpec 故事)[关闭]