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依赖于执行方法的次数

	package test.JunitPac;  
	  
	import JunitPac.CalSum;  
	import org.junit.*;  
	/** 
	 * CalSum Tester. 
	 * 
	 * @author <Authors name> 
	 * @version 1.0 
	 * @since <pre>11,9, 2022</pre> 
	 */  
	public class CalSumTest {  
	  
	    @BeforeClass  
	    public static void BeforeClass1() throws Exception {  
	        System.out.println("在test进行之前");  
	  
	    }  
	  
	  
	    @Test  
	    public void testAdd1() throws Exception {  
	        int res = CalSum.add(4, 5);  
	        Assert.assertEquals(res, 9);  
	        System.out.println("执行函数2");  
	  
	    }  
	  
	    @Test  
	    public void testAdd2() throws Exception {  
	        int res = CalSum.add(5, 9);  
	        Assert.assertEquals(res, 14);  
	        System.out.println("执行函数2");  
	  
	    }  
	  
	    @AfterClass  
	    public static void AfterClass() throws Exception {  
	    }  
	}

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

4:异常测试

使用try catch环绕

	public class CalSum {  
	    
	    public static void count(int num) throws IllegalAccessException {  
	  
	        if (num < 0) {  
	            throw new IllegalAccessException("valid num");  
	  
	        }  
	    }  
	}  
	  
	  
	public class CalSumTest {  
	  
	  
	    @Test  
	    public void testException() throws Exception {  
	        try {  
	            CalSum.count(-1);  
	        } catch (IllegalAccessException e) {  
	  
	  
	        }  
	  
	    }  
	  
	}  

运行截图
在这里插入图片描述
在Test中加入expected

	public class CalSum {  
	    
	    public static void count(int num) throws IllegalAccessException {  
	  
	        if (num < 0) {  
	            throw new IllegalAccessException("valid num");  
	  
	        }  
	    }  
	}  
	  
	  
	public class CalSumTest {  
	  
	  
	    @Test(expected =  IllegalAccessException.class)  
	    public void testException() throws Exception {  
	  
	        CalSum.count(-1);  
	  
	  
	    }  
	  
	}  

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

5:超时测试

Junit 提供了一个暂停的方便选项。如果一个测试用例比起指定的毫秒数花费了更多的时间,那么 Junit 将自动将它标记为失败。timeout 参数和 @Test 注释一起使用。

	public class CalSum {  
	     
	    public static void TimeOut(){  
	  
	        while(true) {  
	  
	        }  
	  
	    }  
	}  
	  
	  
	public class CalSumTest {  
	  
	    @Test(timeout = 1000)  
	    public void testException() throws Exception {  
	  
	        CalSum.TimeOut();  
	  
	    }  
	  
	}  

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

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值