Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我们的项目包含2600个类文件——我们应该在哪里以及如何开始编写junit测试?_Java_Unit Testing_Junit - Fatal编程技术网

Java 我们的项目包含2600个类文件——我们应该在哪里以及如何开始编写junit测试?

Java 我们的项目包含2600个类文件——我们应该在哪里以及如何开始编写junit测试?,java,unit-testing,junit,Java,Unit Testing,Junit,我们的项目包含2600个类文件,我们已经决定开始使用自动测试 我们知道我们应该在2599个类文件之前就开始了,但是大型项目应该如何以及在哪里开始编写测试呢 随便选一门课就走 知道什么是重要的?有什么好的工具可以使用吗?在您更改某些内容之前,为您遇到的每一个bug编写一个单元测试 换句话说,测试您当前正在使用的功能。否则,为所有类编写测试将花费大量的时间和精力。在更改某些内容之前,为遇到的每个bug编写一个单元测试 换句话说,测试您当前正在使用的功能。否则,为所有类编写测试将花费大量的时间和精力。

我们的项目包含2600个类文件,我们已经决定开始使用自动测试

我们知道我们应该在2599个类文件之前就开始了,但是大型项目应该如何以及在哪里开始编写测试呢

随便选一门课就走


知道什么是重要的?有什么好的工具可以使用吗?

在您更改某些内容之前,为您遇到的每一个bug编写一个单元测试


换句话说,测试您当前正在使用的功能。否则,为所有类编写测试将花费大量的时间和精力。

在更改某些内容之前,为遇到的每个bug编写一个单元测试


换句话说,测试您当前正在使用的功能。否则,为所有类编写测试将花费大量的时间和精力。

开始为每个提交的bug编写测试(编写测试,观察测试失败,修复bug,再次测试)。也要先测试新特性(它们更有可能出错)。开始时速度会很慢,但随着测试基础架构的增长,它会变得更容易

如果您使用的是Java5或更高版本,请使用JUnit4


了解单元测试、集成测试和验收测试的区别。还可以看看模拟。

开始为每个提交的bug编写测试(编写测试,观察它失败,修复bug,再次测试)。也要先测试新特性(它们更有可能出错)。开始时速度会很慢,但随着测试基础架构的增长,它会变得更容易

如果您使用的是Java5或更高版本,请使用JUnit4


了解单元测试、集成测试和验收测试的区别。还可以看看模拟。

不要先尝试单元测试。进行覆盖大量代码的系统测试(端到端测试)。为所有新代码编写单元测试


这样,您就可以通过系统回归测试稳定旧代码。随着越来越多的新代码出现在没有单元测试的代码中,这些代码开始逐渐消失。在没有系统测试的情况下为旧代码编写单元测试很可能会破坏代码,并且需要做大量的工作,因为编写代码时没有考虑可测试性。

不要先尝试单元测试。进行覆盖大量代码的系统测试(端到端测试)。为所有新代码编写单元测试


这样,您就可以通过系统回归测试稳定旧代码。随着越来越多的新代码出现在没有单元测试的代码中,这些代码开始逐渐消失。在没有系统测试的情况下为旧代码编写单元测试很可能会破坏代码,并且需要做大量的工作,因为编写代码时没有考虑可测试性。

其他答案给出了有用的建议,但我错过了一个基本原则的清晰表达:努力从你的努力中获得最大利益。在很大程度上使用单元测试覆盖大型遗留代码库需要花费大量的时间和精力。你想从一开始就最大化你的努力成果。这不仅在早期提供了有价值的反馈,而且有助于说服/保持管理层和其他开发人员的支持,让他们相信这些努力是值得的

所以

  • 从测试最广泛功能的最简单方法开始,这通常是系统/集成测试
  • 确定系统的关键核心功能,并专注于此
  • 识别系统中变化最快/最不稳定的部分,并关注这些部分

其他答案提供了有用的建议,但我没有清晰地表达基本原则:努力最大限度地从你的努力中获益。在很大程度上使用单元测试覆盖大型遗留代码库需要花费大量的时间和精力。你想从一开始就最大化你的努力成果。这不仅在早期提供了有价值的反馈,而且有助于说服/保持管理层和其他开发人员的支持,让他们相信这些努力是值得的

所以

  • 从测试最广泛功能的最简单方法开始,这通常是系统/集成测试
  • 确定系统的关键核心功能,并专注于此
  • 识别系统中变化最快/最不稳定的部分,并关注这些部分

    • 你可能会发现这本书很有意义,也很有趣。作者在这里解释了如何完全按照你的要求去做


      你可能会发现这本书很相关,也很有趣。作者在这里解释了如何完全按照你的要求去做


      你可能会发现Michael Feathers的书很有用。

      你可能会发现Michael Feathers的书很有用。

      你现在很笨,但是要编写测试来支持你拥有的最关键的代码。例如,如果您的代码允许基于用户权限的功能,那么这是一个大的测试。对名称进行装箱并将其写入日志文件的例程?没有那么多

      “如果这个代码坏了,它会吸多少”是一个很好的试金石测试

      “我们的内部维护屏幕在IE6上看起来很糟糕”是一个答案。 “我们将向每个客户发送10000000封电子邮件”是另一个答案


      你会先测试哪些类,呵呵。

      你现在相当笨,但要编写支持你拥有的最关键代码的测试。例如,如果您的代码允许基于用户权限的功能,那么这是一个大的测试。对名称进行装箱并将其写入日志文件的例程?没有那么多

      “如果这个代码坏了,它会吸多少”是一个很好的试金石测试

      “我们的内部维护屏幕在IE6上看起来很糟糕”是一个答案。 “我们将向每个客户发送10000000封电子邮件