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

是否有RSpec等效的RSpec来做TDD?

我无法使用 'bundle exec rspec' 执行 rspec

RSpec vs Cucumber(RSpec 故事)[关闭]

失败/错误:需要'rspec/rails'类型错误:错误的参数类型类(预期模块)Rspec V3

ruby [rspec]“使用RSpec测试Rails程序”笔记