文章目录
最近有个软件测试的作业,顺便写一下博客记录一下
1:JUnit下载安装
在github上下载相对应的jar包
JUnit下载
在idea中将jar包导入
安装JUnit插件后重启
创建JUnit测试
在类名上按住alt+insert,点击Junit Test
2:JUnit有关注解
注解作用@Test这个注解说明依附在 JUnit 的 public void 方法可以作为一个测试案例。@Before有些测试在运行前需要创造几个相似的对象。在 public void 方法加该注解是因为该方法需要在 test 方法前运行。@BeforeClass在 public void 方法加该注解是因为该方法需要在类中所有方法前运行。@AfterClass它将会使方法在所有测试结束后执行。这个可以用来进行清理活动。@Ignore这个注解是用来忽略有关不需要执行的测试的。
3:JUnit的使用
1:测试实际值是否符合期望值
除了Assert.assertEquals()方法外,Assert还有许多其他方法常用于单元测试
方法名功能assertNull(java.lang.Object object)检查对象是否为空assertNotNull(java.lang.Object object)检查对象是否不为空assertEquals(long expected, long actual)检查long类型的值是否相等assertEquals(double expected, double actual, double delta)检查指定精度的double值是否相等assertFalse(boolean condition)检查条件是否为假assertTrue(boolean condition)检查条件是否为真assertSame(java.lang.Object expected检查两个对象引用是否引用同一对象(即对象是否相等)assertNotSame(java.lang.Object unexpected, java.lang.Object actual)检查两个对象引用是否不引用统一对象(即对象不等)
2:JUnit的before与after注解
@Before
在某一个方法中,加入了@Before注解之后,那么这个方法中的功能会在测试方法执行前先执行,一般会在@Before修饰的方法中加入一些申请资源的代码,比如:申请数据库,申请IO资源
@After
在某一个方法中,加入了@After注解之后,那么这个方法中的功能会在测试方法执行执行后执行,所以一般在@After修饰的方法中埃及如:释放资源的代码,,比如释放数据库资源,释放IO资源,释放网络资源。
代码示例:
运行结果
3:@beforeClass与@afterClass的使用
1:被声明为@beforeClass与@AfterClass的方法必须为public static void方法
2:即使beforeClass异常,afterClass仍然执行
3:@brforeClass和@AfterClass在整个程序运行中只执行一次,而@before与@after依赖于执行方法的次数
packagetest.JunitPac;importJunitPac.CalSum;importorg.junit.*;/**
* CalSum Tester.
*
* @author <Authors name>
* @version 1.0
* @since <pre>11,9, 2022</pre>
*/publicclassCalSumTest{@BeforeClasspublicstaticvoidBeforeClass1()throwsException{System.out.println("在test进行之前");}@TestpublicvoidtestAdd1()throwsException{int res =CalSum.add(4,5);Assert.assertEquals(res,9);System.out.println("执行函数2");}@TestpublicvoidtestAdd2()throwsException{int res =CalSum.add(5,9);Assert.assertEquals(res,14);System.out.println("执行函数2");}@AfterClasspublicstaticvoidAfterClass()throwsException{}}
运行截图:
4:异常测试
使用try catch环绕
publicclassCalSum{publicstaticvoidcount(int num)throwsIllegalAccessException{if(num <0){thrownewIllegalAccessException("valid num");}}}publicclassCalSumTest{@TestpublicvoidtestException()throwsException{try{CalSum.count(-1);}catch(IllegalAccessException e){}}}
运行截图
在Test中加入expected
publicclassCalSum{publicstaticvoidcount(int num)throwsIllegalAccessException{if(num <0){thrownewIllegalAccessException("valid num");}}}publicclassCalSumTest{@Test(expected =IllegalAccessException.class)publicvoidtestException()throwsException{CalSum.count(-1);}}
运行截图
5:超时测试
Junit 提供了一个暂停的方便选项。如果一个测试用例比起指定的毫秒数花费了更多的时间,那么 Junit 将自动将它标记为失败。timeout 参数和 @Test 注释一起使用。
publicclassCalSum{publicstaticvoidTimeOut(){while(true){}}}publicclassCalSumTest{@Test(timeout =1000)publicvoidtestException()throwsException{CalSum.TimeOut();}}
运行截图:
版权归原作者 sheepbotany 所有, 如有侵权,请联系我们删除。