Junit 实例精讲基础教程(三) 使用@Test(timeout=5000)模拟超时进行单元测试
来源:互联网 发布:linux系统vi命令详解 编辑:程序博客网 时间:2024/06/16 19:59
实际开发中,尤其是系统间的调用时,经常需要检测接口调用的时间,单元测试时,亦需要模拟超时场景。
如果一个单元测试正在花费超过一个定义的“超时”来完成,一个TestTimedOutException
将会抛出,单元测试会认为失败。这里分享使用Junit进行单元测试时如何模拟超时场景。
(本文章分享在CSDN平台,更多精彩请阅读 东陆之滇的csdn博客:http://blog.csdn.net/zixiao217)
单个方法模拟超时的例子
首先展示一个只能对一个方法进行超时模拟的场景,超时时间单位是毫秒。
package org.byron4j.spring_mvc_log4j.mock.timeout;import org.junit.Test;public class TestTimeoutCase1 { @Test public void hello(){ System.out.println("正常测试"); } @Test(timeout=5000) public void helloTooSlow(){ System.out.println("模拟超时测试"); try { Thread.sleep(10000); } catch (InterruptedException e) { e.printStackTrace(); } }}
智力我们将第二个方法睡眠10秒,但是模拟的是5秒,超过5秒认为失败,执行单元测试,结果如下:
全部方法模拟超时的例子
使用@Test和timeout属性只能针对单一方法起作用,现在我们使用@Rule和Timeout、TimeUnit来进行超时规则配置。
package org.byron4j.spring_mvc_log4j.mock.timeout;import java.util.concurrent.TimeUnit;import org.junit.Rule;import org.junit.Test;import org.junit.rules.Timeout;public class TestTimeoutByRule { /** * 设置超时规则3秒 */ @Rule public Timeout to = Timeout.seconds(3); @Test public void test1() throws InterruptedException{ //睡眠5秒 TimeUnit.SECONDS.sleep(5000); System.out.println("test1"); } /** * 正常测试 */ @Test public void test2(){ System.out.println("test2"); }}
单元测试结果:
我们看到只有test2方法正常测试通过了,test1方法超过了规则时间3秒认为单元测试失败。
0 0
- Junit 实例精讲基础教程(三) 使用@Test(timeout=5000)模拟超时进行单元测试
- Junit 实例精讲基础教程(二) 使用@Test+expected、@Rule+ExpectedException模拟方法异常执行的方式
- Junit 实例精讲基础教程(一) 使用@Ignore注解跳过单元测试方法的执行
- Junit 实例精讲基础教程(一) 认识Junit基本注解@Before、@After、@Test、@BeforeClass、@AfterClass
- Junit 实例精讲基础教程(一) 认识Junit基本注解@Before、@After、@Test、@BeforeClass、@AfterClass
- maven项目中使用junit进行单元测试跳过test类
- 使用JUnit 进行单元测试
- 使用Junit进行单元测试
- 使用Junit进行单元测试
- JUnit单元测试(三)--JUnit实例与代码
- 单元测试(三)——Spring Test+JUnit完美组合
- 利用spring-test+junit进行单元测试
- Android - JUnit Test(单元测试)
- Android - JUnit Test(单元测试)
- Java单元测试Junit(三)使用EasyMock扩展Junit
- Spring 使用Junit 进行单元测试
- Android 使用 Junit进行单元测试
- Java使用junit进行单元测试
- IDEA如何打包可运行jar
- sha256.js:3 Uncaught ReferenceError: CryptoJS is not defined(…)
- Leetcode187: Repeated DNA Sequences
- [BZOJ1187][HNOI2007] 神奇游乐园 - 插头DP
- ☆HDU 2209 翻纸牌游戏(反转、开关问题)
- Junit 实例精讲基础教程(三) 使用@Test(timeout=5000)模拟超时进行单元测试
- sql 7 之 创建存储过程及其调用
- 数学基础——问题基础
- 排序之选择排序
- socks5 转 http 代理
- mybatis typeHandler自定义类型转换器
- 字符串匹配算法 BF算法与KMP算法
- aes.js:77 Uncaught TypeError: Cannot read property 'extend' of undefined(…)
- Android动画工具类