JUnit4.12 入门实例

发表于:2016-10-12 11:42

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Devin Blog    来源:51Testing软件测试网采编

  项目工程基于Idea IDE创建,其对JUnit对支持非常不错,写单元测试类也非常方便,直接使用快捷键Ctrl+Shift+T即可自动生成相应的单元测试类模板,使用快捷键Alt+Insert可直接添加新增的单元测试方法;另外本项目使用Gradle进行依赖管理。
  为什么做单元测试:
  1.帮助理解需求
  单元测试应该反映Use Case,把被测单元当成黑盒测试其外部行为。
  2.提高实现质量
  单元测试不保证程序做正确的事,但能帮助保证程序正确地做事,从而提高实现质量。
  3.测试成本低
  相比集成测试、验收测试,单元测试所依赖的外部环境少,自动化程度高,时间短,节约了测试成本。
  4.反馈速度快
  单元测试提供快速反馈,把bug消灭在开发阶段,减少问题流到集成测试、验收测试和用户,降低了软件质量控制的成本。
  5.利于重构
  由于有单元测试作为回归测试用例,有助于预防在重构过程中引入bug。
  6.文档作用
  单元测试提供了被测单元的使用场景,起到了使用文档的作用。
  7.对设计的反馈
  一个模块很难进行单元测试通常是不良设计的信号,单元测试可以反过来指导设计出高内聚、低耦合的模块。
  JUnit简介
  JUnit 是一个 Java 编程语言的单元测试框架。JUnit 在测试驱动的开发方面有很重要的发展,是起源于 JUnit 的一个统称为 xUnit 的单元测试框架之一。
  单元测试规范
  1.单元测试类后面加Test;
  2.测试方法使用@Test标注;
  3.测试方法名之前加test;
  4.所有测试方法返回类型必须为void且无参数;
  5.每个测试方法之间相互独立;
  JUnit4常用注解
  @Test:把一个方法标记为测试方法
  它有两个常用属性:
  1.excepted属性是用来测试异常;
  2.timeout用来测试性能的,就是测试一个方法能不能在规定时间内完成;
  也可使用@Rule规则来规定测试类中的所有方法的超时时间,如果类中的任意一个方法执行时间超过了在Timeout规则中规定的值,测试方法将抛出异常,测试结果为失败(超时参数是以毫秒记)。如:
@Rule
public Timeout timeout = new Timeout(1000);
@Before:每一个测试方法执行前自动调用一次;
@After:每一个测试方法执行完自动调用一次;
@BeforeClass:所有测试方法执行前执行一次,在测试类还没有实例化就已经被加载,所以用static修饰;
@AfterClass:所有测试方法执行完执行一次,在测试类还没有实例化就已经被加载,所以用static修饰;
@Ignore:禁止执行junit测试类的某些或者全部测试方法,应用在方法或类上;
public class AnnotationTest {
int i;
public AnnotationTest(){
System.out.println("构造方法");
}
@BeforeClass
public static void setUpBeforClass(){
System.out.println("BeforClass");
}
@AfterClass
public static void tearDownAfterClass(){
System.out.println("AfterClass");
}
@Before
public void setUp(){
System.out.println("Before");
}
@After
public void tearDown(){
System.out.println("After");
}
@Test
public void test1(){
System.out.println("Test1");
System.out.println("i="+i++);
}
@Test
public void test2(){
System.out.println("Test2");
System.out.println("i="+i++);
}
@Ignore
public void test3(){
System.out.println("Test3");
}
}
  输出结果:
  BeforClass
  构造方法
  Before
  Test2
  i=0
  After
  AfterClass
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号