单元测试构造函数时使用多个断言?

2024-01-07

我正在尝试使用 2 个构造函数对一个类进行单元测试。每个构造函数都有多个设置公共属性的参数。我的问题是,我是否应该只有 2 个具有多个断言的单元测试来检查每个属性是否已设置,或者是否对每个构造函数的每个参数进行测试?

Public Person(string name, string phone, string birthday)
{
   name = name;
   phone = phone;
   birthday = birthday;
}

Public Person(string name) : this(name, null, null)
{}

我从来都不喜欢“每次测试只有一个断言”的教条。这对我来说似乎不切实际——你最终会得到很多关于你的内容的绒毛(测试声明)actually有兴趣。

是的,如果您遇到多个问题,那么您只会有一个测试失败。您修复测试,再次运行它,发现下一个故障,修复它并重复,直到成功。没有什么大的损失。

我并不是说您应该在每次测试中测试大量的功能 - 但走向另一个极端也是不务实的。

我通常只会去一个error不过,每个测试的条件 - 因此,如果您的构造函数实际上会抛出空参数的异常,我会在单独的测试中检查每个异常。否则很容易不小心错过一些东西。

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

单元测试构造函数时使用多个断言? 的相关文章

随机推荐

  • 具有嵌套命名空间的 Rails 4 引擎

    我找不到一种方法来生成在 Rails 下具有嵌套命名空间的引擎 每次这样做时 我基本上都必须手动编辑和移动生成的文件 Rails 中真的不支持嵌套命名空间吗 似乎不太可能 在公司 我们对所有内容进行命名 如下所示 公司名称 服务名称 模块
  • 在 Sass 中为数字添加单位

    我正在尝试创造动态价值 但到目前为止都失败了 创建的像素值似乎失去了用于计算的能力 numericValue 30 pixelValue numericValue px also tried pixelValue numericValue
  • 链接具有公共静态库的静态库的正确过程是什么?

    我正在开发一个静态库 名为Silicon https github com reidmain Silicon 我用于所有 iOS 应用程序 因为我不想创建一个可能难以维护的大型静态库 所以我创建了许多较小的静态库 并将它们作为子模块附加 截
  • UINavigationController 的 addChildViewController 和 topViewController 之间的相互作用

    我有类似模态视图控制器的东西 我需要将其显示在其他视图控制器上方 我没有使用常规模态控制器功能 presentViewController 和朋友 因为我需要更好地控制这个过程 相反 我使用视图控制器包含功能 addChildViewCon
  • 检测 iPhone 屏幕上的亮点/暗点

    我想检测并标记图像上最亮和最暗的点 例如 我正在创建 AVCaptureSession 并使用 AVCaptureVideoPreviewLayer 在屏幕上显示视频帧 现在 在这个相机输出视图上 我希望能够标记当前最暗和最亮的点 我必须读
  • IE框架边框替代

    对于这行代码 我收到此错误 validator w3 org XHTML 1 0 Transitional there is no attribute frameBorder 我在用着frameBorder因为 IE8 在 iframe 上
  • 有人使用 Android NDK 构建过 ZBar 吗?

    我正在尝试将 ZBar 集成到我的 Android 应用程序中 但无法构建本机库 我想知道是否有人以前做过并愿意与我分享 我知道这个问题很老了 但是 ZBar 提供了 android SDK http sourceforge net pro
  • 可以使用单个正则表达式来解析函数参数吗?

    Problem 有一个程序文件 在文件中的某个位置包含以下代码片段 food apples oranges pears tomato 该函数可以包含任意数量的参数 但它们必须是用逗号分隔的字符串 所有参数字符串都是小写单词 我希望能够使用正
  • 我应该如何记录继承的成员? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 考虑一下我有一个复杂的类结构 其中许多元素继承自其他元素 我可能有一个方法GetStuff string stuffName int count
  • 以编程方式检索 iPhone 上的内存使用情况

    我正在尝试以编程方式随时检索我的 iPhone 应用程序正在使用的内存量 是的 我知道 ObjectAlloc Leaks 我对这些不感兴趣 只是想知道是否可以编写一些代码并获取正在使用的字节数并通过 NSLog 报告它 Thanks 要获
  • 在 Swift 4 中调整 UISwitch 的大小

    我想更改 Swift 4 中 UISwitch 的默认大小 我查看了各种选项 但它们都与 v3 相关并且不起作用 请问有人可以建议一个在 Swift 4 中以编程方式执行此操作的示例吗 谢谢你 Edit 我尝试过以下示例 switchTes
  • 如何登录 SailsJS

    登录 SailsJS 的实际语法是什么 文档没有任何内容 但在网站的路线图中找到了以下行 将 Sails log winston 包装器 作为一个单独的模块拉出来 这样它就可以 由水线使用 我想象它是这样的 Sails log Sails
  • 三行模态,固定标题、底行和可滚动的中间行

    我正在尝试创建一个具有顶部 中间和底部的模态 顶部始终是固定高度 底部必须 粘 在底部上 并且可能会有所不同 其中的所有内容和元素都必须从底部构建 因此 如果有一行文本 底部将是该行的高度 如果有 3 或 4 行文本 底部会根据需要向上推
  • 如何在PHP中使用其原始参数调用父类构造函数

    我有这个代码 class A var arr array function construct para echo Not called class B extends A function construct arr new Item 由
  • LOCK_NB 被忽略

    运行此代码两次 fp fopen test test wb if flock fp LOCK NB LOCK EX fwrite fp data echo written sleep 5 else echo skipped ok flock
  • 如何使用 YouTube IFrame Player API 监听时间更改事件?

    我在 YouTube IFrame Player API 文档上找不到任何方法来监听时间变化 因此我可以在 UI 中显示视频的当前时间 持续时间 有没有办法在不轮询的情况下做到这一点getCurrentTime YouTube IFrame
  • Netty Channel.write 线程安全吗?

    我有一个 Netty 应用程序 我希望有多个线程写入通道 我只是想知道 Channel write 是否线程安全 从代码中可以看出 ChannelOutboundBuffer addMessage 方法本身不是线程安全的 然而 写入通道是
  • 如何在 Asyncio 中列出文件? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我希望能够在不阻塞的情况下获取文件列表 但我没有在文档 https docs python org 3 library asyncio
  • Kafka消费者配置/性能问题

    我正在尝试使用 kafka 作为 AWS SQS 的替代品 其动机主要是为了提高性能 其中 kafka 将消除一次拉取 10 条消息且上限为 256kb 的限制 这是我的用例的高级场景 我有一堆爬虫正在发送文档以进行索引 有效负载的大小平均
  • 单元测试构造函数时使用多个断言?

    我正在尝试使用 2 个构造函数对一个类进行单元测试 每个构造函数都有多个设置公共属性的参数 我的问题是 我是否应该只有 2 个具有多个断言的单元测试来检查每个属性是否已设置 或者是否对每个构造函数的每个参数进行测试 Public Perso