Junit单元测试
单元测试
什么是单元测试
一个单元测试是一段代码,这段代码调用一个工作单元,并检验该工作单元的最终结果是否与期望的一致。
工作单元可以是一个方法,类或者功能单元。
为了增强测试代码的可维护性,我们通常针对用户更可见的功能单元编写测试用例。
单元测试具有什么特性
- 可以被自动化运行
- 很容易实现
- 运行速度很快
- 测试结果是稳定的
- 能完全控制被测试的单元,不包含外部依赖
- 各测试用例相互独立,无依赖关系
单元测试的价值
- 帮助发现代码缺陷
- 将缺陷发现的时间提前,开发人员可在本地频繁运行测试代码
- 修改或者重构代码时确保没有影响现有功能
简介
单元测试在开发中占据很重要的地位,它能发现问题,提高效率,在java中应用最广泛的单元测试框架就是Junit
,它被集成在了多个框架或者工具中,例如IDEA、Spring等。进阶请看单元测试进阶Mockito
通常我们通过注解的方式使用Junit。
常用注解
注解 | 描述 |
---|---|
@Test | 注解于方法上,表示作为测试案例 |
@Before | 注解于方法上,在每一个注解案例运行前,都会执行此方法 |
@After | 注解于方法上,在每一个注解案例执行后,都会执行此方法 |
@BeforeClass | 注解于方法上,在类中所有方法前运行 |
@AfterClass | 注解于方法上,在类中所有方法后运行 |
@Ignore | 注解于类或方法上,在测试时会忽略 |
@Runwith | 注解于类上,用来确定这个类怎么运行的 |
@Parameters | 注解于方法上,用于使用参数化功能 |
@SuiteClasses | 注解于类上,用于套件测试 |
使用
JUnitCore
可用于测试
public static void main(String[] args) {
Result result = JUnitCore.runClasses(OneTest.class);//OneTest是测试类
result.getFailures().forEach(System.out::println);
System.out.println(result.getFailureCount());
System.out.println(result.getIgnoreCount());
System.out.println(result.getRunCount());
System.out.println