原文:http://www.tutorialspoint.com/junit/junit_overview.htm
测试是指检测应用程序的功能是否能够按照需求工作的过程,而单元测试是由开发人员进行的测试。单元测试是指针对单个实体(类或方法)进行的测试。为用户提供可靠的产品,每个软件公司都需要进行单元测试。
有两种方式进行单元测试:
- 人工测试
人工测试是指不借助任何工具执行测试用例的过程。
- 耗时而乏味:通过人力来执行测试用例是一个慢速而乏味的过程。
- 投入大量人力:由于测试用例是人工执行的,因此需要有更多的测试人员投入到人工测试中。
- 可靠性低:由于人为失误,每次测试过程可能会有不同,这就导致人工测试的结果不够可靠。
- 不可程式化:一些隐藏的信息只有通过复杂的程序编写才能够测试。
- 自动化测试
自动化测试是指通过自动化工具支持并执行测试用例来测试程序的过程。
- 快速:自动化运行测试用例明显比人力测试快的多。
- 投入较少的人力:由于测试用例是通过自动化工具执行的,因此进需要较少的测试人员尽享自动化测试。
- 可靠性高:自动化测试每次运行可执行完全相同的测试。
- 可程式化:测试人员可以编写复杂的测试程序测出隐藏的信息。
什么是JUnit?
JUnit是Java编程语言的单元测试框架。JUnit在测试驱动开发中非常重要,并且它是单元测试框架xUnit家族的成员之一。
JUnit促进了“先测试后编码”的理念,这种想法强调先设置测试数据和测试代码,再去实现功能代码。这种方法就好比“测试,写代码,测试,写代码……”,这样既能提高程序员的效率,又能够提高代码的稳定性,从而减少程序员的压力及debug所花费的时间。
特性
- JUnit是编写和运行测试的的开源框架。
- 使用注解区分测试方法。
- 使用断言测试预期的结果。
- 使用Test Runners运行测试。
- JUnit测试让你在快速编写代码的同时,质量也同时提高。
- JUnit优雅简洁。它不那么复杂,并且花费较少的时间。
- Junit测试可以自动运行,自己检测结果,并立即的到反馈。不需要人工的梳理测试结果报告。
- JUnit可以将测试用例组织成测试套件,测试套件不仅可以包含测试用例,还可以包含其他测试套件。
- Junit将测试过程显示在一个bar中,如果测试通过则显示为绿色,失败则显示为红色。
什么是单元测试用例?
单元测试用例是代码的一部分,用来保证另一部分代码(方法)能按照预期运行。为了快速的得到这些期望的结果,就需要测试框架。JUnit是针对Java语言而形成的完美的单元测试框架。
一个正式的单元测试用例需要有一个已知的输入和一个预期的结果,这些需要在测试执行前得到。已知的输入是测试前提条件和预期的输出是测试的后置条件。
每个需求应至少有两个测试用例:一个正面的测试用例和一个负面的测试用例。如果一个需求有自子需求,那么每个子需求也应该有至少一个正面测试用例和一个负面测试用例。