首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何存根ruby方法以确保它存在于Minitest中

如何存根ruby方法以确保它存在于Minitest中
EN

Stack Overflow用户
提问于 2019-12-13 23:59:58
回答 1查看 507关注 0票数 1

.stubs上的documentation相反,我似乎能够存根一个不存在的方法。

考虑以下代码:

代码语言:javascript
运行
AI代码解释
复制
class DependencyClass
  def self.method_to_be_stubbed
    'hello'
  end
end

class TestMethodClass
  def self.method_being_tested
    DependencyClass.method_to_be_stubbed
  end
end

class StubbedMissingMethodTest < ActiveSupport::TestCase
  test '#method_being_tested should return value from stub' do
    assert_equal 'hello', TestMethodClass.method_being_tested

    DependencyClass.stubs(:method_to_be_stubbed).returns('goodbye')

    assert_equal 'goodbye', TestMethodClass.method_being_tested
  end
end

在本例中,DependencyClass.stubs(:method_to_be_stubbed).returns('goodbye')按预期工作,因为#method_to_be_stubbed存在于DependencyClass上。但是,如果我将#method_to_be_stubbed更改为DependencyClass的类实例方法,如下所示:

代码语言:javascript
运行
AI代码解释
复制
class DependencyClass
  def method_to_be_stubbed
    'hello'
  end
end

class StubbedMissingMethodTest < ActiveSupport::TestCase
  test '#method_being_tested should return value from stub' do
    assert_equal 'hello', TestMethodClass.method_being_tested

    # despite the method not existing on the class,
    # instead on the instance - yet it still works?
    DependencyClass.stubs(:method_to_be_stubbed).returns('goodbye')

    assert_equal 'goodbye', TestMethodClass.method_being_tested
  end
end

我的#method_to_be_stubbed存根在DependencyClass上维护类方法,尽管它不再存在。既然被存根的方法不存在,那么.stubs调用失败的预期行为不会出现吗?

EN

回答 1

Stack Overflow用户

发布于 2019-12-14 00:10:06

因为被存根的方法不存在,所以.stubs调用不会失败,这是

的预期行为吗?

不,预期的行为不会失败。这就是为什么。你不是在截断一个方法。您正在截断对消息的响应。例如,您的代码中有下面这一行:user.name。这意味着您正在向object user发送消息age。教user处理消息age的最简单/最常见的方法是确保它有一个名为age的实例方法。但也有其他方法。您可以使用method_missing让用户对年龄做出响应。就ruby而言,这是同样有效的。

因此,minitest在这里检查方法的存在是错误的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59331186

复制
相关文章
Rmarkdown与Word文档的交互
在Rmarkdown中提供了直接生成Word文档格式的选项,只要在新建rmarkdown时选择Word选项就行了。
医学和生信笔记
2022/11/15
1.9K0
Rmarkdown与Word文档的交互
Swagger文档转Word 文档
GitHub 地址:https://github.com/JMCuixy/SwaggerToWord/tree/developer 一、前言     为什么会产生这个需求呢?     我们公司作为乙方,老是被客户追着要一份API文档,当我们把一个 Swagger 文档地址丢给客户的时候。客户还是很不满意,嫌不够正式!!死活坚持要一份 word 文档 。然后领导给了个接口模板,就把这个活交给我了......我去,近10个微服务,几百个接口,这不得要了我的命啊(最后整理出来将近200页的 word 文档)。最后
JMCui
2018/03/16
9K0
Swagger文档转Word 文档
HTML5 download属性无效的问题
如果url指向第三方资源,download会失效,表现和不使用download时一致——浏览器能打开的文件,浏览器会直接打开,不能打开的文件,会直接下载。浏览器打开的文件,可以手动下载。
javascript.shop
2019/09/04
5K0
Python创建分栏排版的Word文档
功能描述: 创建docx格式的Word文档,设置分栏数不同的多个节,并在每个节中写入文本。 参考代码: 运行结果:
Python小屋屋主
2020/04/01
2K0
MySQL生成word文档
链接:https://pan.baidu.com/s/16tkYaO7l42XNxUPmQi5deQ 提取码:i6mq
HaC
2020/12/30
4.2K1
MySQL生成word文档
获取pdf文档属性的方法
 当我们想在打开pdf文件之前对pdf状态进行判断时,我们可以在pdf文档属性里添加自己需要的信息,例如把pdf的有效时间和开始时间以json格式保存在作者信息里,这样就方便得多了。因此我们需要这样的第三方的类库,对pdf文档信息进行读写,在这里我推荐pdfbox和pdfclown,这两个都是java处理pdf的类库,而且开源。下面主要介绍pdfclown,而pdfbox做法差不多。        首先,我们在官网上下载pdfclown的源代码http://www.stefanochizzolini.it/
forrestlin
2018/05/23
2.1K0
新建 Microsoft Word 文档
正如我们在第4章中所了解到的,大多数组织都会提供一个可访问Internet(或Intranet,如果在防火墙后面进行测试)的网站,以向匿名用户推销组织能力、联系信息等。这些类型Web服务的一种常见部署方法是托管在非军事区(DMZ)中,非军事区是一个逻辑上或物理上独立的子网,用于公开组织面向公众的外部服务。
顾翔
2022/09/23
7K0
新建 Microsoft Word 文档
java生成word文档
定义一个工具类wordUtil: package com.keji.service.utils; import org.apache.poi.xwpf.usermodel.*; import java.io.FileInputStream; import java.io.InputStream; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.regex.Matcher; i
FHAdmin
2022/01/04
1.6K0
Android为属性组件动画无效
本来我的代码是这样的 然后发现这动画只能在窗体onCreate的时候使用有效。 放在点击事件之类的就不行了。 后经百度发现需要开始动画而不是设置动画 carImg.startAnimation(animation);
SingYi
2022/07/13
8020
Android为属性组件动画无效
python读取word文档表格里的数据
首先需要安装相应的支持库: 直接在命令行执行pip install python-docx
py3study
2020/01/03
3.8K1
text-align属性对position:absloute/fixed的元素无效
text-align属性对position:absloute/fixed的元素无效
javascript.shop
2019/09/04
1.9K0
text-align属性对position:absloute/fixed的元素无效
android:imeOptions属性详解以及无效处理
软键盘的Enter键默认显示的是“完成”文本,我们知道按Enter建表示前置工作已经准备完毕了,要去什么什么啦。比如,在一个搜索中,我们输入要搜索的文本,然后按Enter表示要去搜索了,但是默认的Enter键显示的是“完成”文本,看着不太合适,不符合搜索的语义,如果能显示“搜索”两个字或者显示一个表示搜索的图标多好。事实证明我们的想法是合理的,Android也为我们提供的这样的功能。通过设置android:imeOptions来改变默认的“完成”文本。这里举几个常用的常量值:
再见孙悟空_
2023/02/10
2.5K0
android:imeOptions属性详解以及无效处理
java解析word文档内容
今日主题:java解析word文档内容 1依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.16</version> </dependency> <dependency> <groupId>org.apache.poi</groupId>
java后端指南
2021/07/20
2.2K0
使用Python处理Word文档
1. 前言2. 使用Document对象创建文档3. 在word文档中使用标题4. 在word文档中使用段落5. 在word文档中使用列表6. 在word文档中使用表格7. 在word文档中使用章节8. 在word文档中使用分页9. 在word文档中使用图片10. 读取word文档中的内容
LogicPanda
2019/09/03
7.4K0
Java POI Word 写文档
本文通过介绍Apache POI,讲解如何使用Java代码操作Microsoft Word文档。
I Teach You 我教你
2018/01/02
2.4K0
使用 Python 操作 word文档
最近手头有一个需求是对word文档内容进行判断,搜索到一个包感觉不错,简单记录一下关键操作:
生信菜鸟团
2020/07/21
1.8K0
Word VBA技术:设置文档中表格的格式
在编辑Word文档时,经常会使用表格,也会设置表格格式,让表格看起来更美观。那么,在VBA中如何操作表格来设置其格式呢?下面介绍两段简单的代码,来学习使用代码初步设置表格的格式。
fanjy
2023/02/24
1.4K0
点击加载更多

相似问题

使用AddPicture方法word调整图像属性

11

Word表中的Shapes.AddPicture

211

编辑Word文档的属性

12

修改Word文档属性

34

追加不同的word文档,保持每个文档的属性

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文