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中的单元测试是什么?_Java_Unit Testing_Junit - Fatal编程技术网

Java中的单元测试是什么?

Java中的单元测试是什么?,java,unit-testing,junit,Java,Unit Testing,Junit,你能用几句话解释一下吗 为什么我们需要它/为什么他们让我们的生活更轻松 如何进行单元测试[Java中的简单示例] 我们什么时候不需要它们/什么类型的项目可以不进行单元测试 有用的链接 因为这是应用程序实际按预期工作的证明。您还将发现回归bug更容易。测试变得更容易,因为您不必手动检查所有可能的应用程序状态。最后,即使您手动测试了代码,您也很可能会发现不知道存在的bug junit的谷歌 单元测试应该总是编写的,正如前面所说,它是应用程序按预期工作的证明。有些东西不能或很难测试,例如图形用户界面。

你能用几句话解释一下吗

  • 为什么我们需要它/为什么他们让我们的生活更轻松
  • 如何进行单元测试[Java中的简单示例]
  • 我们什么时候不需要它们/什么类型的项目可以不进行单元测试
  • 有用的链接
  • 因为这是应用程序实际按预期工作的证明。您还将发现回归bug更容易。测试变得更容易,因为您不必手动检查所有可能的应用程序状态。最后,即使您手动测试了代码,您也很可能会发现不知道存在的bug

  • junit的谷歌

  • 单元测试应该总是编写的,正如前面所说,它是应用程序按预期工作的证明。有些东西不能或很难测试,例如图形用户界面。这并不意味着GUI不应该被测试,它只意味着你应该使用其他工具来测试它

  • 见第2点


  • 阅读维基百科上的文章可能是一项工作,因为这将回答您关于为什么的大多数问题。该网站提供了编写Java单元测试的资源,这可能是您的第一站

    就个人而言,我编写单元测试是为了测试方法的契约,即特定函数的文档。这样,您将进入一个增加测试覆盖率和改进文档的周期。但是,您应该尽量避免测试:

    • 其他人的代码,包括JDK
    • 非确定性代码,如java.util.Random
    JUnit不是唯一一个可用于Java的单元测试框架,因此您应该在深入研究它之前评估其他框架

    除了“顶级”框架之外,您还将发现许多涉及特定领域的项目,例如:

    • 网络
    • 啜饮
    • 用于GUI代码

    关于Java单元测试的方法和原因的最好的书之一是(Andy Hunt&Dave Thomas)

    我本应该写的内容已经包含在这里的许多回复中,但我想我应该补充一下

    关于何时使用/不使用单元测试,我读过的最好的一篇文章是关于。这是一篇优秀的文章,涵盖了在代码库的不同部分进行单元测试的成本/收益(即,反对100%覆盖率的有力论据)

    为什么我们需要它/为什么他们让我们的生活更轻松

    • 它允许您检查正在测试的代码片段的预期行为,作为它必须满足的契约
    • 它还允许您在不破坏代码功能(契约)的情况下安全地重新生成代码
    • 它允许您在纠正错误后通过实施单元测试来确保错误修复保持不变
    • 它可以作为编写解耦代码的一种方式(如果您在编写代码时考虑了测试)
    如何进行单元测试[Java中的简单示例]

    有关详细信息,请查看网站和。编写JUnit测试用例并没有什么好处。实际上,提出好的测试用例肯定比实际实现更难

    我们什么时候不需要它们/什么类型的项目可以不进行单元测试

    不要试图测试一个类中的每个方法,而是集中精力测试一个类的功能。例如,您不会为getter和setter编写测试

    链接

    -单元测试

    -测试覆盖率工具


    -Wikipedia单元测试链接

    这就是您的编程应该如何:

    • 决定一个接口(不一定是java接口,但方法对每个人来说都是什么样子)
    • 写一个测试
    • 对实现进行编码

    正如其名称所示,它是对我们程序中的单位进行测试。例如,如果您有一个方法返回两个整数的总和,您将使用两个数字对其进行测试,以查看其工作是否正确。例如,对于2+2,它返回4

    我们需要这些测试,因为在大型项目中,有很多程序员。这些程序员协调工作是很重要的。单元测试就像是我们的程序员编写的过程的正确性证明。因此,一个程序员编写他的过程加上它的单元测试,以证明他的过程工作正常。然后,他Ommit是他对项目所做的更改。这些测试可以帮助您在错误发生之前防止很多错误

    我有一个循序渐进的过程作为例子,在Eclipse中编写Java单元测试


    我希望这能有所帮助。

    “这是你证明应用程序按预期工作的证据”。这是一个非常常见的误解。他们所证明的只是某个特定的“单元”按预期工作(而不是应用程序)。当集成多个单元时,仍然存在集成错误的空间,尽管单个单元100%成功,但多个单元的行为并不像预期的那样。这并不是说单元测试本身并没有难以置信的用处。除了“google it”之外,回答得不错如果您打算进入单元测试,还值得一看模拟框架。使用junit只是等式的一部分,通常您需要为测试预先确定/模拟某些类的行为,例如,对于通常与web服务对话的类上的测试,您可以模拟web服务以返回您想要的结果,而不是对Web服务器进行实际调用。请参见此问题:对于Mockito,这是一个很好的模拟框架。我认为重要的是要注意,从技术上讲,单元测试决定某个小部分(单元)是否一个程序的所有部分都正常工作。这里大多数人都在谈论的,以及通常的现代用法,是一个自动单元测试,它作为构建的一部分或按需运行。@Dolbz我会检查它。谢谢。