gpt4 book ai didi

java - 如何在 Java 中首先编写测试?

转载 作者:行者123 更新时间:2023-11-28 20:18:38 24 4
gpt4 key购买 nike

我阅读了很多关于测试驱动设计的内容。我的项目用的是测试,但是目前都是先写完代码再写,不知道反方向怎么做。

简单的例子:我有一个类Rectangle。它有 private 字段 widthheight 以及相应的 getter 和 setter。普通 java 。现在,我想添加一个返回两者乘积的函数 getArea(),但我想先编写测试。

当然,我可以写一个单元测试。但它并不是失败的情况,而是它甚至没有编译,因为还没有 getArea() 函数。这是否意味着编写测试总是已经涉及更改生产代码以引入没有功能的虚拟机?或者我是否必须以使用自省(introspection)的方式编写测试?我不喜欢后一种方法,因为它使代码的可读性降低,以后用工具重构也不会发现它并破坏测试,而且我知道我们重构很多。此外,添加“虚拟”可能包括很多更改,即如果我需要其他字段,则必须更改数据库以使 Hibernate 继续工作,……这对我来说似乎是一种有效的代码更改方式,但“仅编写测试”。我想要的是这样一种情况,我实际上只能在 src/test/ 中编写代码,根本不触及 src/main,但没有自省(introspection)。

有办法吗?

最佳答案

嗯,TDD 并不意味着在编写测试之前您不能在生产代码中包含任何内容。

例如:

  1. 你把你的方法,例如getArea(param1, param2) 在您的生产代码中使用空主体。
  2. 然后使用有效输入和预期结果编写测试。
  3. 你运行测试,它会失败。
  4. 然后您更改生产代码并再次运行测试。

    • 如果还是失败:回到上一步。
    • 如果通过,则编写下一个测试。

快速介绍可以在这里找到,例如:codeutopia -> 5-step-method-to-make-test-driven-development-and-unit-testing-easy

关于java - 如何在 Java 中首先编写测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56849679/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com