Junit 四
发布时间: 2012-11-17 11:14:14 作者: rapoo
Junit 4
??近期写单元测试计划,公司准备把junit3.8升级到junit4以上的版本,所以研究了一下,写下学习过程和心得体会,为了巩固学习成果,所以把学习心得写下来加深印象,也供需要的朋友查阅,少走弯路。?
?? 好了,废话不多说,直接开始:?
?? 假设我们要写一个整数除法和乘法的类,并且给他写测试用例:?
1) 建立Math类?
工具是eclipse3.3?
import?static?org.junit.Assert.*; ????import?java.util.Arrays; ??import?java.util.Collection; ????import?org.junit.AfterClass; ??import?org.junit.BeforeClass; ??import?org.junit.Ignore; ??import?org.junit.Test; ??import?org.junit.runner.RunWith; ??import?org.junit.runners.Parameterized; ??import?org.junit.runners.Parameterized.Parameters; ????/**???*?@author?bulargy.j.bai???*?@mail?bulargy@gmail.com???*?@创建时间:Mar?11,?2008???*?@描述:???*/??@RunWith(Parameterized.class) ??public?class?MathTest?{ ??????int?faciend; ??????int?multiplicator; ??????int?result; ????????public?MathTest(int?faciend,?int?multiplicator,?int?result)?{ ???????????this.faciend?=?faciend; ???????????this.multiplicator?=?multiplicator; ???????????this.result?=?result; ??????} ????????@BeforeClass??????public?static?void?setUpBeforeClass()?throws?Exception?{ ??????} ????????@AfterClass??????public?static?void?tearDownAfterClass()?throws?Exception?{ ??????} ????????@Test(expected=ArithmeticException.class) ??????public?void?testDivide()?{ ??????????assertEquals(3,Math.divide(9,3)); ??????????assertEquals(3,Math.divide(10,3)); ??????????Math.divide(10,0);//除数不能为0,会抛出异常?????????} ????????//@Ignore("忽略乘法测试")???????@Test??????public?void?testMultiple()?{ ??????????assertEquals(result,Math.multiple(faciend,multiplicator)); ??????} ?????? ??????@Parameters??????public?static?Collection?multipleValues()?{ ???????return?Arrays.asList(new?Object[][]?{ ??????????{3,?2,?6?}, ??????????{4,?3,?12?}, ??????????{21,?5,?105?}, ??????????{11,?22,?242?}, ??????????{8,?9,?72?}}); ??????} ????}??
OK,大功告成。测试看看吧,测试类跑了5次~~。?
大概就这么多体会了,总得来说JUnit4以后测试还是很方便的,顺便这个是仅仅是为了做例子,实际使用中由于JUnit4不再受命名的限制,所以应该划分更细粒度的测试来完成,一个方法的正确,异常,错误及边界数据完全可以分开来写测试方法。由于大部分情况资源只用加载和释放一次就足够,大大提高的测试的速度,再也不会有以前那样点开测试然后去泡咖啡的情况出现了~~呵呵~~