头歌实践教学平台:Junit实训入门篇

第4关:Junit时间测试

任务描述

要求学员实现一个Junit时间测试:超过1000毫秒未执行结束就判定测试未通过。

相关知识
Junit时间测试

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

代码示例
 
  1. import org.junit.*;
  2. /**
  3. * JUnit TimeOut Test
  4. */
  5. public class JunitTest {
  6. @Test(timeout = 50000) //单位是毫秒
  7. public void infinity() {
  8. while (true);
  9. }
  10. }

在上面的例子中,infinity() 方法将不会返回,因此JUnit引擎将其标记为失败,并抛出一个异常。

java.lang.Exception:test timed out after 50000 milliseconds

编程要求

本关的编程任务是在TestTimeOut.java中实现一个Junit时间测试,超过1000毫秒未执行结束就判定测试未通过。

本关涉及的代码文件TestTimeOut.java的代码如下:

 
  1. package step4;
  2. import org.junit.Test;
  3. public class TestTimeOut {
  4. //请在下面的Begin/End内补全test()超时测试函数,要求如果超过1000毫秒执行未结束,就判定测试未通过
  5. /***********************Begin**************************/
  6. @Test()
  7. public void test() {
  8. while(true){}
  9. }
  10. /************************End***************************/
  11. }
评测说明

本关卡的测试文件是TestRunner.java,该文件进行了函数封装且学员不可见,用于验证学员的Junit测试代码是否正确。

具体测试过程如下:

1.平台自动编译生成TestRunner.exe; 2.平台运行TestRunner.exe; 3.获取TestRunner.exe输出,并将其输出与预期输出对比:如果一致则测试通过,否则测试失败。

预期输入: 预期输出:

 
  1. test(step4.TestTimeOut): test timed out after 1000 milliseconds
  2. false

友情提示

1.请不要直接println最终输出,否则平台发现此类情况后,将一律扣掉本关经验值,并且追加处罚措施。

2.学员答题时请尽量手敲代码,请勿从实训讲解代码片段中复制代码段粘贴到答题区域作答,复制的内容会保留一些格式和字符,导致编译失败。

开始你的任务吧,祝你成功!

代码如下

package step4;


import org.junit.Test;


public class TestTimeOut {

     //请在下面的Begin/End内补全test()超时测试函数,要求如果超过1000毫秒执行未结束,就判定测试未通过
    /***********************Begin**************************/
    @Test(timeout=1000)//超过1000毫秒未执行结束就判定测试未通过
    public void test() {
        while(true){}
    }
    /************************End***************************/
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值