用Java进行unit testing – 它是什么?

你能用几句话解释一下:

  1. 为什么我们需要它/为什么它们让我们的生活更轻松?
  2. 如何进行unit testing[Java中的简单示例]?
  3. 什么时候我们不需要他们/类型的项目我们可以退出unit testing?
  4. 有用的链接

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

  • 它允许您检查您正在测试的代码片段的预期行为,作为它必须满足的合同。
  • 它还允许您安全地重新编码代码而不会破坏它的function(合同)。
  • 它允许您通过在纠正错误后实施unit testing来确保错误修复保持不变。
  • 它可以作为编写分离代码的一种方法(如果在编写代码时考虑到了测试)。

如何进行unit testing[Java中的简单示例]?

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

什么时候我们不需要他们/类型的项目我们可以退出unit testing?

不要尝试测试类中的每个方法,而是专注于测试类的function。 以豆为例,你不会为getter和setter编写测试……

链接

JUnit – unit testing

EclEmma – 测试覆盖率工具

链接文本 – 维基百科链接到unit testing

  1. 因为这certificate了应用程序实际上是按预期工作的。 您还会发现回归错误更容易。 测试变得更容易,因为您不必手动完成所有可能的应用程序状态。 最后,即使您手动测试了代码,您也很可能会发现甚至不知道存在的错误。

  2. 谷歌为junit

  3. 应该始终编写unit testing,如上所述,这是您的certificate应用程序按预期工作。 有些东西不能或可能难以测试,例如图形用户界面。 这并不意味着不应该测试GUI,它只意味着你应该使用其他工具。

  4. 见第2点。

这可能是阅读维基百科有关unit testing的文章的工作,因为这将回答您关于原因的大部分问题。 JUnit网站有编写Javaunit testing的资源,其中Junit Cookbook应该是你的第一站。

就个人而言,我编写unit testing来测试方法的合同,即特定function的文档。 这样,您将进入增加测试覆盖率和改进文档的循环。 但是,您应该尽量避免测试:

  • 其他人的代码,包括JDK
  • 非确定性代码,例如java.util.Random

JUnit不是唯一可用于Java的unit testing框架,因此在深入研究之前,您应该评估其他框架,如TestNG 。

除了“顶级”框架之外,您还可以找到涵盖特定领域的不少项目,例如:

  • HTMLUnit for Web
  • SIPUnit for SIP
  • 用于GUI代码的SwingUnit

我想写的内容已经在很多回复中提及,但我想我会添加这个……

关于何时使用/不使用unit testing的最佳文章是史蒂夫桑德森的博客 。 这是一篇很好的文章,涵盖了基于代码库的不同部分的unit testing的成本/收益(即针对100%覆盖率的引人注目的论据)

关于Java中unit testing的最佳书籍之一是使用JUnit在Java中进行语用unit testing (Andy Hunt和Dave Thomas)

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

  • 决定一个接口(不一定是java接口,但是方法对每个人来说都是如此
  • 写一个测试
  • 编写实施代码

正如它的名字所示,它是我们计划中的单位测试。 例如,如果你有一个方法返回两个整数的总和,你将用两个数字测试它,看它是否正常工作。 例如,对于2 + 2,它返回4。

我们需要这些测试,因为在大项目中,有很多程序员。 这些程序员和谐地工作是很重要的。 unit testing就像我们程序员编写的程序的正确性certificate。 所以,程序员编写他的程序加上它的unit testing,以表明他的程序正常工作。 然后,他将更改提交给项目。 这些测试可以帮助您在发生之前防止大量错误。

我以一步一步的程序为例,在Eclipse中写下Javaunit testing。 请查看“ 如何编写联合测试 ”。

我希望它有所帮助。