TDD 中的模拟值

2024-02-15

在书里GOOS http://www.growing-object-oriented-software.com/。据说不要嘲笑价值观 http://www.mockobjects.com/2007/04/test-smell-everything-is-mocked.html,这让我很困惑。这是否意味着价值观没有任何行为?

我对值对象了解不多,但据我所知,值对象是不可变的。是否有任何关于决定何时创建值对象的启发式方法?


并非所有不可变对象都是值对象。顺便说一句,在设计时,请考虑理想的对象只有不可变字段和无参数方法。

关于启发式,有效的方法可以考虑如何使用对象:如果您构建一个实例,调用一些方法,然后使用它(或将其存储在字段中),那么它可能不是值对象。相反,如果将对象保存在某种数据结构中并比较它们(与.equals())可能你有一个值对象。对于将用于键入关键帧的对象尤其如此Maps

值对象本身应该自动测试(测试通常很容易阅读和编写,因为很简单),但是模拟它们是没有意义的:模拟接口的主要实际原因是实现类

  • 通常很难构建(需要很多合作者)
  • 运行起来很昂贵(访问网络、文件系统……)。

两者都不适用于值对象。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TDD 中的模拟值 的相关文章

  • 如何在 JFace 的 TableViewer 中创建复选框?

    我创建了一个包含两列的 tableViewer 我想将其中一列设为复选框 为此 我创建了一个 CheckBoxCellEditor 但我不知道为什么它不起作用 名为 tableName 的列显示其值正常 色谱柱规格如下 String COL
  • 如何在一行中将字符串数组转换为双精度数组

    我有一个字符串数组 String guaranteedOutput Arrays copyOf values values length String class 所有字符串值都是数字 数据应转换为Double QuestionJava 中
  • ElasticBeanstalk Java,Spring 活动配置文件

    我正在尝试通过 AWS ElasticBeanstalk 启动 spring boot jar 一切正常 配置文件为 默认 有谁知道如何为 java ElasticBeanstalk 应用程序 不是 tomcat 设置活动配置文件 spri
  • 在Windows上安装Java 11 OpenJDK(系统路径问题)

    Java 11 最近发布了 众所周知 这个版本没有安装文件 当然 要在没有安装程序的情况下安装 Java 我将系统设置 PATH 和 JAVA HOME 设置为解压缩 Java 11 的文件夹的地址 根据对类似问题的已接受回复建议 唯一的事
  • 使用面向对象的分析和设计对电梯进行建模[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 当涉及到面向对象的设计和分析时 有一组问题似乎在面试和课堂上很常见 这是其中之一 不幸的是 我在大学的 OOP 教授从未真正给出过答案 所以我一
  • Java8无符号算术

    据广泛报道 Java 8 具有对无符号整数的库支持 然而 似乎没有文章解释如何使用它以及有多少可能 有些函数 例如 Integer CompareUnsigned 很容易找到 并且似乎可以实现人们所期望的功能 但是 我什至无法编写一个简单的
  • 如何在 Java 中禁用 System.out 以提高速度

    我正在用 Java 编写一个模拟重力的程序 其中有一堆日志语句 到 System out 我的程序运行速度非常慢 我认为日志记录可能是部分原因 有什么方法可以禁用 System out 以便我的程序在打印时不会变慢 或者我是否必须手动检查并
  • Java 页面爬行和解析之 Crawler4j 与 Jsoup

    我想获取页面的内容并提取其中的特定部分 据我所知 此类任务至少有两种解决方案 爬虫4j https github com yasserg crawler4j and Jsoup http jsoup org 它们都能够检索页面的内容并提取其
  • jdbc4.MySQLSyntaxErrorException:数据库中不存在表

    我正在使用 SpringBoot 开发一个网络应用程序 这是我的application properties文件来指定访问数据库的凭据 spring datasource driverClassName com mysql jdbc Dri
  • hibernate总是自己删除表中的所有数据

    您好 我正在开发一个 spring mvc 应用程序 它使用 hibernate 连接到存储文件的 mysql 数据库 我有两个方法 一个方法添加我选择的特定文件路径中的所有文件 另一种方法调用查询以返回从 mysql 存储的文件列表 问题
  • 如何在jsp代码中导入java库?

    我有以下jsp代码 我想添加 java io 等库 我怎样才能做到这一点
  • OnClick 事件中的 finish() 如何工作?

    我有一个Activity一键退出Activity 通过layout xml我必须设置OnClick事件至cmd exit调用 this finish 效果很好 public void cmd exit View editLayout thi
  • 无法理解 Java 地图条目集

    我正在看一个 java 刽子手游戏 https github com leleah EvilHangman blob master EvilHangman java https github com leleah EvilHangman b
  • 如何将文件透明地传输到浏览器?

    受控环境 IE8 IIS 7 ColdFusion 当从 IE 发出指向媒体文件 例如 mp3 mpeg 等 的 GET 请求时 浏览器将启动关联的应用程序 Window Media Player 我猜测 IIS 提供文件的方式允许应用程序
  • 反思 Groovy 脚本中声明的函数

    有没有一种方法可以获取 Groovy 脚本中声明的函数的反射数据 该脚本已通过GroovyShell目的 具体来说 我想枚举脚本中的函数并访问附加到它们的注释 Put this到 Groovy 脚本的最后一行 它将作为脚本的返回值 a la
  • 从同一个类中的另一个构造函数调用构造函数

    我有一个带有两个构造函数的类 C 这是代码片段 public class FooBar public FooBar string s constructor 1 some functionality public FooBar int i
  • org.jdesktop.application 包不存在

    几天以来我一直在构建一个 Java 桌面应用程序 一切都很顺利 但是今天 当我打开Netbeans并编译文件时 出现以下编译错误 Compiling 9 source files to C Documents and Settings Ad
  • Android JNI C 简单追加函数

    我想制作一个简单的函数 返回两个字符串的值 基本上 java public native String getAppendedString String name c jstring Java com example hellojni He
  • 将2-3-4树转换为红黑树

    我正在尝试将 2 3 4 树转换为 java 中的红黑树 但我无法弄清楚它 我将这两个基本类编写如下 以使问题简单明了 但不知道从这里到哪里去 public class TwoThreeFour
  • Swagger/Openapi-Annotations:如何使用 $ref 生成 allOf?

    我正在生成 Rest 端点 包括添加OpenAPI Swagger对生成的代码进行注释 虽然它对于基本类型运行得很好 但我在自定义类方面遇到了一些问题 现在我有很多自定义类的重复架构条目 使用 Schema 实现 MyClass class

随机推荐

  • Windows 上 Python 3.1 的 SendKeys

    最新的 Python Sendkeys 模块适用于 Python 2 6 我无法自己升级它 因为它需要重新编译 C 模块 有谁知道将密钥发送到窗口的相当简单的替代方法 使用 win32ui FindWindow 我可以找到正确的窗口 然后使
  • C#/.NET 中方法的自动记录异常 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想要一些工具 最好是能够插入 VS 2008 2010 的工具 它将遍历我的方法并添加有关它们可能抛
  • cv::Mat 的序列化给出了奇怪的结果

    我目前正在尝试序列化和反序列化 openCV Mat 以便我可以使用 Boost 将帧从客户端发送到服务器 我遇到的问题是 当我反序列化图像时 它会给出不同颜色的重复重叠图像 我不知道为什么会发生这种情况 任何帮助将非常感激 很抱歉我无法发
  • jquery事件优先级

    我有两个函数挂在submit表单的事件 每个功能都位于不同的位置 并且一个功能可以影响另一个功能 如何强制这些函数之一以最低优先级挂钩 即最后执行 我能想到的有四种方法 您自己管理回调 并且只有一个事件处理程序以所需的顺序调用函数 在应该最
  • 多对多关系、复选框的 CRUD 视图

    我很难弄清楚我需要做什么才能让它发挥作用 我正在使用 EF 学习 ASP NET MVC CodeFirst 如果我创建一个模型 我可以简单地为该模型添加一个控制器 并添加脚手架来创建自动处理 CRUD 的视图 但现在我有两个模型 项目和类
  • 如何隐藏跟踪像素

    不幸的是 我有一个跟踪像素 导致页脚底部出现一个小白条 隐藏像素的最佳方法是什么 我正在考虑将它 和我的其他像素 放入position absolutediv 它正确隐藏了栏 但我不确定这是否会阻止像素在某些浏览器上工作 From 谷歌支持
  • MVC3如何在控制器的类中发布列表?

    我有一堂课 public class CarList public int quantity get set public List
  • 基于Radius Google Maps iOS SDK更改相机变焦

    我正在开发一个应用程序 它根据当前位置周围的半径显示某些标记 半径在100 5000米之间 我用一个改变半径UISlider并重新绘制GMSCircle 我的问题是我想根据滑块值更新相机变焦 但我不知道要按哪个比例划分 这就是我在中创建相机
  • Spring JPA @Query JPQL 失败并显示“意外标记:DATE”

    我正在使用 Spring Data JPA 我想查询我的结果并过滤它们 在 SQL 中 我会像这样编写查询 针对 DB2 数据库 SELECT FROM CAR WHERE ACCIDENT YEAR IS NULL OR BUY YEAR
  • GKE VPC 本机集群以及与 Cloud SQL 的连接

    GKE 集群中的 VPC Native 是什么 VPC Native 禁用 GKE 集群 是否限制通过私有 IP 连接到 Cloud SQL 我们有一个 GKE 集群 其 VPC Native 被禁用 并且我们在 cloud sql 中将
  • 如何在 Python 中使用 OpenCV 存储网络摄像头视频

    我有一个 Python 脚本 它可以读取我的网络摄像头并将其显示在窗口中 我现在想存储结果 所以如下本教程 http opencv python tutroals readthedocs io en latest py tutorials
  • EJB 和 CDI bean 序列化的最佳实践

    我还没有遇到任何与序列化相关的问题 但 PMD 和 Findbugs 检测到一系列有关序列化的潜在问题 一个典型的情况是注入的记录器被检测为不可序列化 但还有更多 EntityManager和一些 CDI 豆 我还没有找到任何关于如何正确处
  • Swift 中 UITableView 的奇怪行为

    我有一个带有两个标签和一个图像的自定义单元格 我从互联网上收到一些 Json 数据 一切正常 每个单元格都填充相应的数据 我添加了一个新标签 必须像其他标签一样填写该标签 这是数据 let cell tableView dequeueReu
  • 查找不存在连接的记录

    我有一个范围来限制所有questions用户是否对其进行了投票 在模型中 scope answered by lambda u joins votes where votes user id u id scope unanswered by
  • 为什么在 32 位应用程序中使用 WIC 在 Windows 7 32 位中失败?

    我有 Win32 C 示例应用程序 它使用Windows 图像组件 http msdn microsoft com en us library windows desktop ee719654 28v vs 85 29 aspx在 Visu
  • Bootstrapper:如何在单个 .msi 包中编译应用程序和先决条件?

    我正在为该应用程序创建一个 msi 包 该应用程序具有安装先决条件 我使用 Visual Studio 2005 Bootstrapper 来完成此任务 为此 我做了以下工作 找到文件夹 C Program Files Microsoft
  • 如何对随机游走设置竞技场限制?

    我正在构建一个有偏相关随机游走 并且我已经成功构建了 RW 并将其偏向西风运动 问题 我需要将步行限制在一侧 或所有 一侧 当前的代码是 walk lt function n times plot 524058 542800 2799758
  • ValueError:推断频率 传递的值中没有一个不符合传递的频率 MS

    我正在尝试创建用于时间序列分析的月频指数 这date变量是一个时间戳 从2018 10 18 10 50 10 till 2019 11 25 15 09 33 我在主题行中收到错误 我尝试删除空值 但这没有帮助 python 编程新手 有
  • ASIHttpRequest 忽略 setValidatesSecureCertificate 参数

    在某些条件下 ASIHTTPRequest 可以忽略 setValidatesSecureCertificate 参数吗 如果我这样做 NSURL url NSURL URLWithString https someselfsignedur
  • TDD 中的模拟值

    在书里GOOS http www growing object oriented software com 据说不要嘲笑价值观 http www mockobjects com 2007 04 test smell everything i