java单元测试junit

进行单元测试则需要添加junit的依赖:

##JUnit is a unit testing framework for Java, created by Erich Gamma and Kent Beck.
##对于java来说JUnit是一个单元测试的框架<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.1</version><scope>test</scope></dependency>

在这里插入图片描述

首先先在java下面创建个类:
在这里插入图片描述

package com.ruozedata.hadoop.junit;public class Cal {public int add(int a, int b){return a + b;}public int devide(int a, int b){//TODO... if判断0被除数不能为0return a/b;}
}

然后在test下面创建单元测试
在这里插入图片描述

Before和After:
一般开发代码中叫类名如果叫Cal,那么单元测试中,在类名的前面或者后面加上Test,如:CalTest

package com.ruozedata.hadoop.junit;import org.junit.After;
import org.junit.Before;
import org.junit.Test;import static org.junit.Assert.assertEquals;/*** 单元测试的使用案例** 遵循了一套执行标准:先执行setup,再执行test,再执行teardown* 这里使用了java里面的设计模式:模板模式*模板模式 就是定义好了步骤,第一步做什么、第二步做什么...,然后去执行* {*     step1 setup*     step2 test*     step3 teardown* }** 不是说所有的测试都是测试人员干的* 单元测试:是开发人员干的** 开发了一个类:类里面有很多方法* 每个方法都需要进行单元测试,并且一个方法可能需要多个单元测试进行多角度的测试** 写的代码(含有单元测试)提交到git上面之后,* 测试人员再测试之前,会有自动化的测试工具Jenkins之类的* 会先跑单元测试,通过了之后才会进行打包、发布,然后再供QA测试人员进行测试** setup和teardown是每个测试方法,都会在执行之前、执行之后去执行* 这是个典型的模板模式*/
public class CalTest {Cal cal;/*** @ Before表示在某一个动作之前做的* 初始化的动作,建立MySQL连接、打开IO流等等*/@Beforepublic void setUp(){cal = new Cal();System.out.println("---setUp----");}//TODO...//@Test表示单元测试用例@Testpublic void testAdd(){System.out.println("---testAdd----");int result = cal.add(3, 6);//这里要加哥断言assert,断言:result是不是和期望值9是不是相等,//如果是9说明是通过的,如果不是说明有问题assertEquals(9,result);}//因为如果除数是0,那么会失败异常,//所以加了(expected = ArithmeticException.class)//这样的话如果除数是0,那么异常和自己期望的异常是一致的@Test(expected = ArithmeticException.class)public void testDevide(){System.out.println("---testDevide----");int result = cal.devide(10,0);//这里要加哥断言assert,断言:result是不是和期望值9是不是相等,//如果是9说明是通过的,如果不是说明有问题assertEquals(3,result);}/*** @ After表示在某一个动作之后做的* 资源释放操作:释放MySQL连接,关闭IO流等操作,和前面相对应*/@Afterpublic void tearDown(){System.out.println("---tearDown----");cal = null;}
}

BeforeClass和AfterClass:

package com.ruozedata.hadoop.junit;import org.junit.*;import static org.junit.Assert.assertEquals;/*** 在这个类里面,* BeforeClass只执行一次* AfterClass只执行一次** Before和After是每个测试方法都执行一次*/
public class CalTest02 {static Cal cal;@BeforeClasspublic static void setUpBeforClass(){System.out.println("---setUpBeforClass----");cal = new Cal();}@Beforepublic void setUp(){System.out.println("---setUp----");}@Testpublic void testAdd(){System.out.println("---testAdd----");int result = cal.add(3, 6);//这里要加哥断言assert,断言:result是不是和期望值9是不是相等,//如果是9说明是通过的,如果不是说明有问题assertEquals(9,result);}@Test(expected = ArithmeticException.class)public void testDevide(){System.out.println("---testDevide----");int result = cal.devide(10,0);//这里要加哥断言assert,断言:result是不是和期望值9是不是相等,//如果是9说明是通过的,如果不是说明有问题assertEquals(3,result);}@Afterpublic void tearDown(){System.out.println("---tearDown----");}@AfterClasspublic static void tearDownAfterClass(){System.out.println("---tearDownAfterClass----");cal = null;}
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部