Java JUnit测试——是什么让它比手动测试更有用?
一般来说,我理解测试和单元测试的重要性,但是JUnit在现实世界中是否普遍使用,与“手动”测试方法相比,使用它有什么优势?也就是说,为什么要使用JUnit测试:Java JUnit测试——是什么让它比手动测试更有用?,java,unit-testing,debugging,testing,junit,Java,Unit Testing,Debugging,Testing,Junit,一般来说,我理解测试和单元测试的重要性,但是JUnit在现实世界中是否普遍使用,与“手动”测试方法相比,使用它有什么优势?也就是说,为什么要使用JUnit测试: public class MyTest extends TestCase { public void testSomething() { assertTrue(someCondition); assertTrue(manyOtherConditions); } } 与某种轻量级自
public class MyTest extends TestCase
{
public void testSomething()
{
assertTrue(someCondition);
assertTrue(manyOtherConditions);
}
}
与某种轻量级自定义编码单元调试工具相比
public class MyTest
{
public static void testSomething()
{
MyDebugUtility.println(someCondition);
MyDebugUtility.println(expectedCondition);
}
}
自己检查返回值?无论采用哪种方法,您都必须在条件之间进行比较,并且对于单元测试,似乎很容易在测试代码中出错(正如我所做的那样),并想知道当您的真正错误是意外地键入assertTrue而不是assertFalse时,为什么您的类不能工作
即使您想要简单的布尔函数,是什么让JUnit优于
public class MyTest
{
public static void testSomething()
{
if(condition1)
MyDebugUtility.println("Passed condition1");
else
MyDebugUtility.doError(); //handle however you want
}
}
我还缺少JUnit更强大的功能吗?我编写的大多数单元测试似乎只是一些简单打印和布尔检查的繁琐版本。测试框架,如JUnit、NUnit等,免费为您提供了许多功能,您无需自行实现。例如,JUnit将自动为您调用测试方法,setUp()、tearDown()等等。它还有许多助手断言方法 另一个优点是JUnit通常集成在IDE中
这些都不是火箭科学,你可以自己实现。以前我不得不推出自己的JUnit类功能。但除非你有特殊需要,为什么还要麻烦呢 回答第一个问题-是的,实际上,几乎所有严肃的软件公司都会使用某种形式的自动化单元测试。使用现成单元测试框架的原因有很多,其中有几个:
JUnit几乎可以毫不费力地集成到continuos集成过程中,因此,如果有人破坏了构建,团队在几分钟内就会知道这一点。仅此功能就值得使用 当然,在其他答案中还有其他有用的特性。JUnit是一个你真的不想重新发明的轮子
如果您反对JUnit,请尝试TestNG——它可能对您更有效。简而言之,它是一种标准化的单元测试方法。His提高了开发人员的熟悉度,并改进了与工具(构建工具、CI、代码分析等)的集成 @Martin:那是不必要的。记住:不是每个人都是有经验的开发人员。