JUnit是java单元测试工具。
一、在项目中构建单元测试的一些规则:‘
1.新建一个源代码目录来存放我们的测试代码,通常命名为:test
2.测试类的包应该和测试类保持一致。
3.测试单元中的每个方法必须可以单独测试,测试方法不能有任何的依赖。
4.测试方法必须使用public void 经行修饰,不能带任何的参数。
5.测试方法使用test作为方法的前缀。【不是必须的】
6.测试类使用Test类作为类名的后缀。【不是必须的】
注意:[eclipse]通常可以直接在测试类上面,单击右键来创建一个JUnitl测试类,eclipse会自动生成与测试类相对应 的包名。测试方法等以上规则)
二、对于JUnit的测试结果说明
1.Failure一般由单元测试使用的断言方法判断失败所引起的,这表示测试点发现了问题,那程序输出的结果和我们预期的结果不一样造成。
2.error是由代码异常引起的,它可以产生于测试代码本身的错误,也可以是被测试代码中的一个隐藏的bug。
3.测试用例是用来证明你没有错,而不是用来证明你是对的。
三、@Test属性
1.@Test(expected = XX.class) 捕获异常。如果程序捕获达到相对应的XX.class异常,那么程序也表示成功。如果出 现其他异常,则会报错。
2.@Test(timeout = 毫秒)测试代码块的运行时间。当到达该时间时,如果程序还没执行完成,那么程序也将退出。
四、测试套测 @RunWith(XX.class)
1.测试套件就是组织测试类一起运行的入口类。
a).写一个作为测试套件的入口类,这个类里面不包含其他的方法。
b).更改测试运行器XX.class.
c).将要测试的类作为数组传入到 @Suite.SuiteClasses({test1.class,test2.class..... }),
@RunWith(Suite.class)@Suite.SuiteClasses({TaskTest1.class,TaskTest2.class})public class SuiteTest { //不可以包含其他方法}
五、JUnit中的参数化设置
1.更改默认的测试运行器为@RunWith(XX.class)
2.声明变量来保存预期值和结果值。
3.声明一个返回值为Collection的公共静态方法,并使用@Parameters进行修饰。
4.为测试类声明一个带参数的公共构造函数并在其中为声明变量赋值。
import static org.junit.Assert.*;import java.util.Arrays;import java.util.Collection;import org.junit.Test;import org.junit.runner.RunWith;import org.junit.runners.Parameterized;import org.junit.runners.Parameterized.Parameters;import com.sun.org.glassfish.gmbal.ParameterNames;/** * @author 作者 E-mail: xuebinlu@163.com* @version 创建时间:2015年12月1日 下午9:31:47 * 对于最上面的import static 静态导入,这个和平时的import导入的区别在于,前者导入以后,在当前类下不用再使用类名调用,直接调用导入类的静态方法就行,而后者这需要通过导入类的类名来调用静态方法。 */@RunWith(Parameterized.class)public class ParameterTest { int expected = 0; int input1 = 0; int input2 = 0; @Parameters public static Collection