TDD三定律和5条规则

这篇具有很好参考价值的文章主要介绍了TDD三定律和5条规则。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

TDD三定律和5条规则

1. 三定律

  1. 定律一:在编写不能通过的单元测试前,不可编写生产代码
  2. 定律二:只可编写刚好无法通过的单元测试,不能编译也算不通过
  3. 定律三:只可编写刚好足以通过当前失败测试的生产代码

通俗来讲,以上三定律对应如下文章来源地址https://www.toymoban.com/news/detail-442225.html

  1. 没有用例失败前,不要写生产代码
  2. 如果有用例失败,那就不要继续编写新的失败用例;当有用例失败,应该去修改生产代码,而不是继续编写用例
  3. 仅写能通过当前失败用例的代码,不写跟当前失败用例不相关的代码,但是可以重构

2. 5条规则:F.I.R.S.T.

  1. 快速Fast:测试应该快,也就是执行时间短,能够快速运行。如果执行慢,就不会想要频繁执行;不频繁执行,就不能尽早发现问题;不能尽早发现问题就不能轻易修正,因为发现问题时已经编写了很多了
  2. 独立Independent:测试应该相互独立。某个测试不应为下一个测试设定条件。你应该能够独立的运行每一个测试,及以任何顺序运行测试。当测试互相依赖时,头一个没通过就会导致一连串的测试失败,使问题诊断变得困难,隐藏了下级错误
  3. 可重复Repeatable:测试应该可以在任何环境下执行通过。你应该可以在生产环境、验证环境中重复运行测试,也可以在无网络的环境下使用本地进行测试。如果测试不能在任意环境中运行测试,你就总会有个解释失败的借口;或者当环境条件不具备时无法运行测试
  4. 自足验证Self-Validating:测试应该有布尔值输出。无论是通过还是失败,你不应该通过查看日志文件来确认测试是否同哟。你不应该手工对比两个不同文本文件来确认测试是否通过。如果测试不能自足验证,对失败的判断就会变的依赖主观而运行测试也需要更长的手工操作时间
  5. 及时Timely:测试应该及时编写。单元测试应该恰好在使其通过的生产代码之前进行编写。因为如果在编写生产代码之后进行测试,你会发现生产代码难以测试。你可能会认为某些生产代码本身难以测试。你可能不会去设计可测试的代码。

到了这里,关于TDD三定律和5条规则的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 单元测试:优雅编写Kotlin单元测试

    一、MockK简介 MockK是一款功能强大、易于使用的Kotlin mocking框架。在编写 单元测试 时,MockK能够帮助我们简化代码、提高测试覆盖率,并改善测试的可维护性。除了基本用法外,MockK还提供了许多额外的功能和灵活的用法,让我们能够更好地模拟对象行为、验证函数调用,并在

    2024年02月10日
    浏览(33)
  • 【Linux】编写COM口和USB口的规则文件(.rules)

            当外接存储设备(如:U盘、机械硬盘等)时,由于路径/dev下并没有存储新设备的设备节点、规则文件等,udev会给新的存储设备按照内核的分配规则分配设备节点诸如:/dev/sda(如U盘)、/dev/sdb(如机械硬盘)等临时设备节点, 这些临时设备节点是按照外接设备的

    2024年02月13日
    浏览(32)
  • 您不能为现有的 IPv4 CIDR 规则指定 一个 引用的组ID

    【问题标题】:You may not specify a referenced group id for an existing IPv4 CIDR rule. prompt when editing the Inbound rule in AWS Security Group您不能为现有 IPv4 CIDR 规则指定引用的组 ID。在 AWS 安全组中编辑入站规则时提示 【问题描述】: 在 AWS EC2 中,我创建了一个ECS安全组,又创建了一个ELB安全组,

    2024年02月06日
    浏览(30)
  • Excel部分单元格不能编辑,什么原因?怎么做到的?

    Excel文件打开之后,发现在一个工作表中,有些单元格点击之后没有反应,有些就是正常的。大家可能不知道是什么原因,这个是设置了工作表保护的原因。 大家可能会想,工作表保护是对整个工作表的保护,应该不是保护一部分单元格的吧,其实是可以的。今天和大家分享

    2024年02月02日
    浏览(33)
  • 【go语言开发】编写单元测试

    本文主要介绍使用go语言编写单元测试用例,首先介绍如何编写单元测试,然后介绍基本命令的使用,最后给出demo示例 在go语言中编写单元测试时,使用说明 测试文件命名 :在 Go 语言中,测试文件的命名应与被测试的源代码文件相同,但以 “_test” 结尾。例如,如果你的源

    2024年02月04日
    浏览(34)
  • 利用ChatGPT协助编写单元测试

    ChatGPT自从2022年推出以来受到很多人的喜欢,此篇博客重点介绍如何修改Prompt来自动生成较理想的单元测试。如下图所示的一段代码,该class中有一个public方法toLocale(),其余都是private方法,toLocale()方法会调用private的方法。(备注:下面的方法特地写了比较多的分支逻辑,来验

    2024年02月11日
    浏览(28)
  • 记录贴:vxe-table单元格合并规则的简单封装及应用

    本文仅做为个人记录。 虚拟渲染与单元格合并,可以通过设置参数 merge-cells 或调用函数 setMergeCells、setMergeCells 来控制单元格的临时合并状态 (注:合并是以牺牲渲染性能为代价,如果需要用合并建议关闭虚拟滚动) 针对多层级的数组对象处理,以对象某个属性为准(此处

    2024年02月02日
    浏览(60)
  • 5个编写技巧,有效提高单元测试实践

    “在计算机编程中,单元测试又称为模块测试,是针对程序模块来进行正确性检验的测试工作。程序单元是应用的最小可测试部件。在过程化编程中,一个单元就是单个程序、函数、过程等;对于面向对象编程,最小单元就是方法,包括基类、抽象类、或者派生类中的方法。

    2023年04月26日
    浏览(33)
  • 单元测试:如何编写可测试的代码?

    在编写代码的时候,大部分时间想的都是如何实现功能,很少会考虑到代码的可测试性。 又因为大部分公司没有要求写单元测试,完成的功能都是通过服务模拟的方式测试,更加不会考虑代码的可测试性了。 常见的可测试性不好的代码,几种情况(取自极客时间王铮设计模

    2024年02月08日
    浏览(34)
  • 使用Mockito针对多线程场景编写单元测试

    Mockito是一个Java的Mocking框架,主要用于编写单元测试。针对多线程编程的单元测试,可以使用Mockito的一些特性和技巧来完成。  Mockito支持异步调用技术,可以使用Mockito.when().thenReturnAsync()方法来模拟异步调用的返回值。这样可以模拟多线程编程的情况。 例如,假设有一个异

    2024年02月09日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包