Junit4学习笔记

来源:互联网 发布:克里米亚战争 知乎 编辑:程序博客网 时间:2024/06/14 03:51

昨天花了一天时间学了一下JUnit单元测试,今天把整个过程总结了一下,学过之后记下来时常回顾一下。


1.官网
http://junit.org/junit4/

2.jar包导入
在项目上单击右键
选择build path
选择add Libraries
选择Junit就可以了。

3.在写好的程序的所在包新建一个JUnit test file。
4.使用格式,
@Test
assertEquals(预期值, new MathTest().mut(3, 4));
5.注意:
1)测试方法上必须使用@Test进行修饰
2)测试方法必须使用public void进行修饰,不带任何参数
3)建议:新建一个源代码目录来存放测试代码
4)测试类的包应该和被测试类保持一致
5)测试单元中的每个方法必须可以独立测试,测试方法间不能有任何依赖关系
6)建议:测试类使用Test作为类名的后缀
7)建议:测试方法使用test作为方法名的前缀

6.测试失败:
1)Failure一般是由单元测试使用的断言方法判断失败所引起的,这表示测试点出现了问题,程序输出的结果和我们预期的结果不一样
2)error是由代码异常引起的,他可能是由测试代码本身的错误所产生,也可能是测试代码本身存在的一个小bug引起
3)测试用例本身就不是用来证明代码没问题,只是为了证明代码没有错

7.运行流程
1)@BeforeClass修饰的方法会在所有方法被调用前被执行,而且该方法是静态的,所以当测试类被加载后接着会运行它。其在内存中只会存在一份实例,比较适合加载配置文件
2)@AfterClass所修饰的方法通常用来对资源进行清理,比如关闭数据库的连接
3)@Before和@After会在每个测试方法的前后各执行一次

8.常用注解
1)@Test:将一个普通的方法修饰成一个测试方法
@Test(expected=???.class)
@Test(expected=毫秒)设置代码运行超时时间,超过多久就自动结束
2)@BeforeClass:它会在所有的方法被执行前被执行,static修饰
3)@AfterClass:它会在所有方法被运行之后执行
4)@Before:会在每个测试方法被运行前执行一次
5)@After:会在每个测试方法运行之后被执行一次
6)@Ignore:所修饰的测试方法会被测试运行器忽略
7)@RunWith:可以更改测试运行器org.junit.runner.Runner

9.断言
1)assertEquals(expected, actual)
2)assertArrayEquals

10.测试套件
测试套件就是组织测试类一起运行的
1)首先写一个作为测试套件的入口类,这个类里不包括其他的方法,类用public修饰
2)更改测试运行器为Suite.class
@RunWith(Suite.class)
3)将要测试的类作为数组传入到Suite.SuiteClasses({})
@Suite.SuiteClasses({TestDemo1.class,TestDemo2.class,TestDemo3.class })

11.多组参数参与测试
1)更改默认的测试运行器为RunWith(Parameterized.class)
2)声明变量来存放预期值和结果值
3)声明一个返回值为Collection的公共静态方法,并使用@Parameters进行修饰
4)为测试类声明一个带有参数的公共构造函数,并在其中为之声明变量赋值

例:
import static org.junit.Assert.*; @RunWith(Paramererized.class)public class ParameterTest{int expected =0;int input1=0;int input2=0;@Parameterspublic static Collection<Object[]> t(){return  Arrays.asList(new Object[][]{{3,2,1},{4,2,2}});}}
























0 0
原创粉丝点击