JUnit--JAVA单元测试
/**
- JUnit4
- 1.测试方法必须使用@Test修饰
- 2.测试方法必须使用public void 修饰,不能带任何的参数
- 3.新建一个源代码目录存放测试代码
- 4.测试类的包必须和被测试类保持一致
- 5.测试单元中的每个方法必须可以独立测试,测试方法间不能有任何依赖
- 6.测试类使用Test作为类名的后缀(不是必须)
- 7.测试方法使用test作为方法前缀(不是必须)
- @Test:将一个方法修饰成测试方法
- 1.@BeforeClass修饰的方法会在所有方法调用之前被执行,而且该方法是静态的,
- 所以当测试类被加载之后会运行它,而且内存里面只会有一份实例,他比较适合加载配置文件。
- 2.@AfterClass所修饰的方法通常用于对资源的清理,如关闭数据库链接
- 3.@Before@After会在每个测试方法的运行前后各执行一次
- Junit——常用注解
- 1.@Test:将一个普通的方法修饰成为一个测试方法
- 2.@Test(expected=XXX(异常类).class):会抛出该异常
- 3.@Test(timeout=毫秒 ):设置执行的时间,用于结束死循环或是性能测试
- 4.@Ignore:所修饰的测试方法会被测试运行器忽略
- 5.@RunWith:可以更改测试运行器org.junit.runner.Runner
- Junit——测试套件
- 用于批量测试,测试套件中也可以测试其他测试套件
- 测试套件是一个空类,需要使用public修饰
- @RunWith(Suite.class)——更改测试运行期为Suite.class,说明所修饰的类为测试套件的入口类
- @Suite.SuiteClasses({测试类1.class,测试类2.class,...})——以数组的的形式作为SuiteClasses的参数
- 小结:
- 1.写一个作为测试套件的入口类,不包含其他的方法,用public修饰
- 2.更改测试运行器Suite.class
- 3.将要测试的类作为数组传入到Suite.SuiteClasses({})
- 提高代码的重用度
- 1.更改默认的测试运行器为RunWith(Parameterized.class)
- 2.声明变量存放预期值和结果值
- 3.声明一个返回值为Collection的公共静态方法,并使用@Parameters进行修饰
- 例如:
- public static Collection<Object[]>t(){
- return Arrays.asList(new Object[][]{{3,2,1}{4,2,2}});
}
4.为测试类声明一个带有参数的公共构造函数,并在其中为之声明变量赋值(预期值、输入参数值等)
5.@Test构造测试类,使用通过构造函数传入参数的相关变量写测试类 - 完善测试代码,JUnit4最佳实践
- 但对于逻辑错误无能为力
*/