文章目录
单元测试Juint
35.1 概述
针对最小功能单元编写测试代码,Java中最小功能单元是方法,因此单元测试就是针对Java方法的测试。
对部分代码进行测试。
35.2 用法
(如图已经导入juint包可以直接使用)
未导入情况:
- 一定要先写一个方法。
- 在这个方法的上面写@Test
- 鼠标点一下@Test 按alt + 回车,点击Junit4此时就可以自动导包。
如果自动导包失败(连接外网,或者自己手动导包)
如果导包成功在左下角就会出现Junit4的相关jar包
手动导包
1,在当前模块下,右键新建一个文件夹(lib)
2,两个jar包(hamcrest-core-1.3.jar和junit-4.13.1.jar),拷贝到lib文件夹里面
3,选中两个jar右键点击add as a lib…
4,到代码中,找到@Test,按alt + 回车,再来导入。
注意点:
- 只能直接运行无参无返回值的非静态方法
- 想要运行谁,就右键点击哪个方法。如果想要运行一个类里面所有的测试方法,选择类名,有点点击即可。
如下代码:
publicclassJunitDemo{@Testpublicvoidmethod1(){int a =6;int b =8;System.out.println(a+b);}@Testpublicvoidmethod2(){int a =6;int b =8;System.out.println(a-b);}}
正确的使用方式
1,新建测试类
2,新建测试方法(要测试的方法名 + Test) methodTest
3,在这个方法中直接调用要测试的方法
4,在测试方法的上面写@Test
publicclassJunitDemo{publicintadd(int a ,int b){return a+b;}}============================publicclassJunitDemo2{// 测试JunitDemo类中的add方法@TestpublicvoidmethodTest(){JunitDemo jd =newJunitDemo();int result = jd.sum(2,5);// 断言:// 参数一:当两个结果一样时,出现的提示信息// 参数二:实际运行的结果// 参数三:预计结果Assert.assertEquals("add方法出错了",result,7);}}
35.3 Junit常用注解
注解说说明@Test测试方法@Before用来修饰实列方法,该方法会在每一个测试方法之前执行一次@After用来修饰实列方法,该方法会在每一个测试方法执行之后执行一次@BeforeClass用来修饰静态方法,该方法会在所有测试方法之前只执行一次@AfterClass用来修饰实列方法,该方法会在所有测试方法之后执行一次
- 开始执行的方法:初始化资源
- 执行完之后的方法:释放资源
publicclassJunitDemo3{// 需求:测试File类中的delete方法是否书写正确// 测试防止对原数据造成污染// 1.利用before去对数据进行初始化操作// 2.利用Test真正的去测试// 3.利用After去还原数据@BeforepublicvoidbeforeMethod()throwsIOException{// 先备份File f1 =newFile("C:\\Users\\23853\\Desktop\\a.txt");File f2 =newFile("C:\\Users\\23853\\Desktop\\copy_a.txt");FileInputStream fis =newFileInputStream(f1);FileOutputStream fos =newFileOutputStream(f2);int b ;while((b = fis.read())!=-1){
fos.write(b);}
fos.close();
fis.close();}@TestpublicvoidmethodTest(){File file =newFile("C:\\Users\\23853\\Desktop\\a.txt");boolean flag = file.delete();Assert.assertEquals("delete方法出错了0",flag,true);}@AfterpublicvoidafterMethod()throwsIOException{// 还原数据 即还原@Test中删除的a.txtFile f1 =newFile("C:\\Users\\23853\\Desktop\\copy_a.txt");File f2 =newFile("C:\\Users\\23853\\Desktop\\a.txt");FileInputStream fis =newFileInputStream(f1);FileOutputStream fos =newFileOutputStream(f2);int b ;while((b = fis.read())!=-1){
fos.write(b);}
fos.close();
fis.close();// 删除备份数据
f1.delete();}}
版权归原作者 蔚一 所有, 如有侵权,请联系我们删除。