Junit优点:
安装使用方便
可以同时执行多个测试方法
测试结果直观明了
本文记录Junit使用的基本知识:
1. 编写测试类
2. 使用断言
3. 使用suite套件对多个测试类进行批处理
运行环境和工具:
Intellij IEDA
juint-4.10(下载地址)
详细步骤:
打开IDEA,新建java项目
在项目中导入junit包
File->Project Structure->libraries->点击‘+’ ->java->找到下载的junit-4.10->apply->ok
可以看到junit已经导入项目
在src中编写源代码(被测试的类及其方法),编写测试类和测试方法,项目目录结构如下:
被测试类代码:
package main.com.hnust.learnjunit; public class StringOpeator { public String sayHello(String str1,String str2){ return str1+str2; } } |
测试类代码及其要求:
package test.junittest; import main.com.hnust.learnjunit.StringOpeator; import org.junit.Assert; import org.junit.Test; public class JunitTestOne { /*Test注解标记*/ @Test /*固定格式:(public修饰,void返回值,自定义测试方法名称,无参)*/ public void test1(){ StringOpeator so =new StringOpeator(); String str=so.sayHello("Hello","Junit"); //断言语法 Assert.assertEquals("HelloJunit",str); } } |
在测试类中右键,选择“Run**”,可以看到下面的测试执行结果窗口
原谅绿加勾表示测试结果正确。
4 . 尝试在测试类中多加入几个test方法,也就是多加入几组测试用例,测试运行:
可以看到测试结果窗口左侧共有三个测试方法被执行,其中test1测试结果正确test2,test3出现错误,我们可以点击它,然后在右侧看错误原因,可以知道是null空指针异常,说明被测试类的代码有bug,我们可以对其进行空指针处理,重新运行:
可以看到test2测试方法结果正确,同理可以修改代码使得test3测试方法结果也正确。
5. 以上使用到Assert断言机制,所谓断言,就是判断是或者不是,它的作用和优点是什么呢?就是比较预期结果和实际结果,以图形化的方式显示结果,就像上图中,出现原谅绿色勾就表示预期结果和实际结果一样,而出现红色叹号就说明测试用例没通过,就需要改善源代码,避免程序潜在漏洞了。以Assert.assertEquals(“HelloJunit”,str)这行代码为例,”HelloJunit”是预期结果,str是实际结果,assertEqulas方法就是判断这两个字符串是否相同。当然断言的判断方法不止这个,介绍几种常见的断言方法:
assertEquals(expected,actural)
assertSame(),assertNotSame()
–以上两种区别和str1.equals(str2),str1==str2区别一样,前者比较值,后者比较地址。
assertFalse(),assertTrue()
assertNull(actural),assertNotNull(actural)
6.将测试类代码优化,提取出相同的代码放入测试类中,每一个测试方式是一个线程,重复代码使得测试程序占用过多资源
7.除了@Test,其他常用注解的使用
@Before在每个测试方法之前执行
@After在每个测试方法之后执行
@BeforeClass在所有方法执行之前执行
@AfterClass在所有方法执行之后执行
由此可见,Before和After方法执行了三次,分别在三个测试方法前后执行,BeforeClass和AfterClass只执行一次,根据类加载机制,应该是在加载阶段就已经定义,属于类的共有方法,也就是静态方法,所以要使用static关键字修饰。
8 . 使用suite套件对多个测试类进行批处理
先建立多个测试类。。
然后建立一个测试总类
测试总类使用suite套件,格式如下,运行结果如下
这就是Junit基本使用知识,以后在使用过程中再挖掘其更多的功能,熟练使用测试工具对于程序员写出高质量代码,减少程序bug有很大的帮助。
上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。