对于 testunit 或其他 nunit 风格框架来说,什么才是好的失败消息?

2024-05-05

在 Ruby 的 test/unit 和其他此类 nunit 风格框架中,什么才是好的失败消息?

失败消息是否应该仅仅描述预期值与预期值不匹配的情况?

assert_match("hey", "hey this is a test", "The word does not exist in the string")

它应该描述您期望发生的情况吗?

assert_match("hey", "hey this is a test", "I expected hey to be in the string")

它应该描述为什么你希望这种行为发生吗?

assert_match("hey", "hey this is a test", "Program should provide a greeting")

它应该描述您认为测试可能失败的原因吗?

assert_match("konnichiwa", "konnichiwa this is a test",
  "Program failed to use supplied i18n configuration")

有关测试的信息是否也应该存在于测试方法的名称和测试用例的名称中?

这是基于Ruby“test/unit”,如何在断言中显示消息 https://stackoverflow.com/questions/8450708/ruby-test-unit-how-do-i-display-the-messages-in-asserts/8468287#8468287


失败消息应该为失败消息添加上下文。因此,任何事情都可以让您不必深入研究测试代码以了解失败的原因。

因此,如果 [方法名称、预期、实际] 设置足以满足上述目的,则可以跳过失败消息。如果您需要更多信息,请添加可选的失败消息。

e.g. Expected true but was false,没有告诉我任何事情。

您可以使用失败消息,以便Return value should contain only multiples of 10. Expected true but was false

您可以首先尝试使用更具描述性的匹配器。 这样失败就可以读取Expected all items to be divisible by 10 but was [10,20,35,40] does.

就我个人而言,我更喜欢匹配器......使用失败消息作为最后的手段。 (因为像注释一样,它会衰减。您需要纪律来确保在更改检查时更新失败消息。)

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

对于 testunit 或其他 nunit 风格框架来说,什么才是好的失败消息? 的相关文章

随机推荐

  • JSON.NET 序列化 JObject,同时忽略 null 属性

    我有一个JObject它被用作template用于调用 RESTful Web 服务 这JObject通过解析器创建 并且由于它用作模板告诉用户端点架构是什么样子 所以我必须找到一种方法来保留所有属性 这就是为什么我将它们的值默认为null
  • 如何提高MySQL INSERT和UPDATE性能?

    我们数据库中的 INSERT 和 UPDATE 语句的性能似乎正在下降 并导致我们的 Web 应用程序性能不佳 表是InnoDB 应用程序使用事务 我可以做一些简单的调整来加快速度吗 我认为我们可能会遇到一些锁定问题 我怎样才能找到答案 你
  • iOS:iOS 4.3 和 5.0 之间不同的 addSubview 行为

    之前在 iOS 4 3 中编码时 我发现将视图控制器的视图添加到另一个视图时 superview addSubView controller view 控制器实例将不会收到 viewWillAppear viewDidAppear消息 比我
  • 带有 wsdl2java 插件的 gradle

    我正在使用 no nils wsdl2java 插件 完整的 gradle build 文件如下所示 plugins id org springframework boot version 2 3 4 RELEASE id io sprin
  • 通过网络共享的 SQL CE

    我之前见过这个问题 但找不到关于什么是可能 不可能以及什么解决方法可能可用的明确解释 我有一个现有的 C 应用程序 它使用 SQL CE 来存储本地信息 该数据库只能由单个应用程序访问 并存储在用户的 appdata 文件夹中 某些环境将
  • setInterval 会导致浏览器挂起吗?

    几年前 我被警告不要使用setInterval很长一段时间 因为如果被调用的函数运行时间超过指定的时间间隔 可能会导致浏览器挂起 然后无法跟上 setInterval function foo bar i 1 现在 我知道在循环中添加大量代
  • 使用地理编码发出一个请求后超出查询限制

    我正在使用 ggmap 的地理编码来查找不同城市的纬度和经度 昨天它工作得很好 但今天只发出一个请求后我就收到了 OVER QUERY LIMIT 事实上 如果我只是加载库并运行地理编码 它会抛出 OVER QUERY LIMIT 错误 g
  • 链表迭代器实现 C++

    我已经在 C 中创建了一个链接列表 并想为其实现一个迭代器 以便我可以执行范围循环 for const int i list where Linked List
  • 将 csv 文件转换为 pandas 数据框

    我有一个以下格式的 CSV 文件 DATES 01 12 2010 01 12 2010 01 12 2010 02 12 2010 02 12 2010 02 12 2010 UNITS Hz kV MW Hz kV MW Interva
  • 如何在 Django URLpatterns 中调度请求方法?

    很清楚如何创建从 URL 正则表达式分派的 URLPattern r books books where books可以根据请求方法进一步调度 def books request if request method POST else 我想
  • 如何从Python文件中查找每个工作角色的平均工资

    我想写一个python代码来查找平均工资对于每种类型的工作角色 我认为您这样做是为了学习如何使用 Python 编写此类代码的练习 那么这种仅使用基本 Python 命令和类型的方法应该会有所帮助 read file content wit
  • 搜索具有多个值的多列 SQL

    我知道可以用一个值搜索多个列 我想在 3 4 列中搜索 4 个或者 5 个值 我想检查我选择的任何列是否具有特定值 Example Column 1 Column 2 Column 3 Column 4 Hello True Goodbye
  • OCaml 3.12 中的一流模块:它们将使哪些事情变得更容易(或可能)?

    我听说 OCaml 3 12 中即将推出 一流模块 他们将提供什么优势 哪些孩子的事情会变得更容易 他们试图解决什么问题 一个简单的例子就足够了 这只是一个可能的应用程序 但一流的模块可以轻松地对存在类型进行编码 基本上是一个模块打包存在类
  • gcc 内部使用相同的位表示 int 和 char 吗?

    我只是为了好玩而玩弄 unicode 字符 不使用 wchar t 支持 我只使用常规的 char 数据类型 我注意到 当以十六进制打印它们时 它们显示了完整的 4 个字节 而不是仅一个字节 对于前 考虑这个 c 文件 include
  • 在具有德语区域设置的 Windows 上将 ISO 8601 一年中的周数字与一年中的月份数字相匹配

    这与我的问题直接相关来自每周时间格式的日期的 POSIX 日期 https stackoverflow com questions 41597604 posix date from dates in weekly time format 但
  • PHP set_include_path 的“起点”是什么

    在 PHP 中 set include path 相对于什么 它是 PHP exe 所在的文件夹吗 是网络根吗 换句话说 set include path 或 set include path 指的是哪个文件夹 相对路径是从文件所在位置解析
  • “损坏的双链表”是什么意思

    我最近从我的 PHP 中收到以下错误 WARNING pool www child 42475 said into stderr glibc detected php fpm pool www corrupted double linked
  • 将文本复制到剪贴板

    我正在做 C NET 应用程序 我想在工具栏上创建一个按钮 基本上会调用 Ctrl C 复制到剪贴板 我查看了 Clipboard 类 但问题是因为我在表单上有多个文本框 我需要扫描哪个文本框具有焦点以及是否选定文本 以便从中选择文本等 所
  • symfony2以管理员用户身份访问私有文件

    在我的 Symfony2 3 项目中 我有一个前端网站和一个后端 后端通过 security yml 文件进行安全保护 只有 role admin 用户可以访问后端 我现在想要的是只有管理员用户可以下载 pdf 文件存储在资产中 有没有办法
  • 对于 testunit 或其他 nunit 风格框架来说,什么才是好的失败消息?

    在 Ruby 的 test unit 和其他此类 nunit 风格框架中 什么才是好的失败消息 失败消息是否应该仅仅描述预期值与预期值不匹配的情况 assert match hey hey this is a test The word d