0


JUnit单元测试

文章目录

最近有个软件测试的作业,顺便写一下博客记录一下

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();}}

运行截图:
在这里插入图片描述

标签: junit 单元测试 java

本文转载自: https://blog.csdn.net/lllwky/article/details/127816419
版权归原作者 sheepbotany 所有, 如有侵权,请联系我们删除。

“JUnit单元测试”的评论:

还没有评论