Java学习笔记——单元测试(JUnit框架)

this.m = new mathDemo();

System.out.println(“在每个测试方法之前执行”);

}

@After

public void tearDown(){

this.m = null;

System.out.println(“在每个测试方法之后执行”);

}

@Test

public void testgetArea1(){

assertEquals(“这是错误信息1”,20,m.getArea(4,5));

}

@Test

public void testgetArea2(){

assertEquals(“这是错误信息2”,12,m.getArea(3,4));

}

}

@Test注解的方法
  1. 每个@Test对应一个方法,这个方法会被识别为一个测试方法

  2. 一个测试类里面可以有多个@Test,但是每个@Test对应的测试方法只会被执行一次

通常我们会在@Test测试方法中使用assertEquals断言语句,来判断方法是否能够正常运行并且输出我们希望的结果

assertEquals(“错误信息”,期望结果,实际结果)

当期望结果与实际结果不一致时,就会打印错误信息

这是断言都正确,没有报错时的结果

在这里插入图片描述

但假如我修改一下期望结果,让期望结果与实际结果不一致

@Test

public void testgetArea(){

assertEquals(“这是错误信息1”,20,m.getArea(4,5)); //正确

assertEquals(“这是错误信息2”,16,m.getArea(3,4)); //错误

}

在这里插入图片描述

这里会打印之前给定的错误信息,并且打印详细的信息,帮助我们来修改

这里需要说一下这些注解的含义:

@BeforeClass注解的方法,
  1. 是整个测试类开始执行的地方,在当前类所有的测试方法之前被执行。

  2. 是静态方法

  3. 用来初始化一些繁琐耗时的资源,比如创建数据库。

@AfterClass注解的方法,
  1. 是整个测试类完成之后执行的操作,在当前类中的所有测试方法之后执行。

  2. 是静态方法

  3. 用来清理@BeforeClass部分初始化的资源

注意,这两个都是Junit4的写法,在Junit5中,这两个分别叫@BeforeAll与@AfterAll

@Before注解的方法
  1. 在每个测试方法之前执行。

  2. 是非静态的方法

  3. 用来初始化类的对象或者类的属性

@After注解的方法
  1. 在每个测试方法之后执行

  2. 是非静态的方法

  3. 用来清理@Before部分初始化的对象或者属性

注意,这两个都是Junit4的写法,在Junit5中,这两个分别叫@BeforeEach与@AfterEach

@Before与@After会在每一个被@Test注解的测试方法的前后,被自动执行

@Before

public void setUp(){

this.m = new mathDemo();

System.out.println(“在每个测试方法之前执行”);

}

@Test

public void testgetArea(){

assertEquals(“这是错误信息1”,20,m.getArea(4,5));

}

@After

public void tearDown(){

this.m = null;

System.out.println(“在每个测试方法之后执行”);

}

具体的调用顺序就像这样,每次先调用@Before注解的方法,初始化类的对象,然后是运行测试方法,测试方法调用完毕之后调用@After注解的方法,清理释放之前初始化对象占用的空间。

也是因为这样,不同的@Test测试方法,彼此之间互不影响,因为每一个@Test测试方法的对象都是不一样的

但是对于@BeforeClass与@AfterClass中初始化的静态变量来说,由于只会初始化和清理一次,对所有的@Test测试方法都是有影响的

@Ignore注解的方法

被@Ignore注解的方法会被忽略,不会被执行

@Test

public void testgetArea1(){

assertEquals(“这是错误信息1”,20,m.getArea(4,5));

}

@Ignore

public void testgetArea2(){

assertEquals(“这是错误信息2”,16,m.getArea(3,4));

}

结果为
在这里插入图片描述
虽然第二个测试方法里面的断言是错误的,但这里并没有报错,说明这个测试方法没有被执行。@Before和@After也只分别被调用一次。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值