前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >单元测试框架系列教程5-TimeOut属性、属性priority、属性enabled

单元测试框架系列教程5-TimeOut属性、属性priority、属性enabled

作者头像
凯哥Java
发布2019-07-01 13:37:45
5820
发布2019-07-01 13:37:45
举报
文章被收录于专栏:凯哥Java凯哥Java

这篇先来介绍@Test注释下的一个属性-timeOut。字面意思就是超时判断,详细点说。如果哪个测试方法需要监听执行的时间,那么就可以考虑采用timeOut属性。例如,实际的接口测试中,加入登录接口时间不能超过3秒中。下面来看看如何监控这个方法如果运行时间超过3秒就抛出异常。

package com.java.learn;

import org.testng.annotations.Test;

/** * create by Anthony on 2017/10/31 */public class TimeoutTest {    @Test(timeOut = 3000)    public void loginTest(){        try{            Thread.sleep(3100);        }catch(InterruptedException e){            System.out.println(e.toString());        }    }}

 运行下这个Testng测试用例,看是否抛出异常。

我们来更改下Thread.sleep(2800);再次运行,看看效果。

总结:当某些测试用例需要测试运行时间(一般在接口测试中会遇到)的时候,利用@Test这个注释中的timeOut属性,可以帮你做到监控时间的功能。

继续学习@Test下的注释,这篇学习两个属性的基本使用。第一个是设置该条用例不被执行,第二个的作用是设置用例执行的优先顺序。

属性enabled

在Testng中,如果方法前面添加了@Test注释,然后没有其他的属性,那么默认这个用例会被自动运行。那么如果,我不想要某个方法运行呢?有些人第一反应就是,把这个方法前面的@Test给删除或者注释符号注销该行。不可否认,这是一个方法,但是不明智。在@Test注释中提供了一个enabled的属性,让我们临时去修改该条用例不被执行。Enable属性有两个值true和false。

场景举例:

在单元测试,或者接口测试中。我们一般一个类文件,会写好几个测试用例来测试这个方法或者这个接口。有时候,我们需要debug,不想要其中一个或者几个用例执行,那么enabled就派上用场。例如,下面我不想让test2用例执行。

package com.java.learn;import org.testng.annotations.Test;/** * create by Anthony on 2017/10/31 */public class TestNG_Demo2 {    @Test    public void test1(){        System.out.println("test1");    }    @Test(enabled=false)    public void test2(){        System.out.println("test2");    }    @Test    public void test3(){        System.out.println("test3");    }    @Test    public void test4(){        System.out.println("test3");    }}

运行结果显示确实test2没有被执行。这种应用,一般在写测试用例,查找问题,区分干扰项的时候,经常用到。

属性priority

上面介绍了disabled一些用例执行。有时候,我们更希望,一个类文件下的测试用例按照我们设想的顺序去执行,而不是默认按照方法名的字母排序去执行。@Test注释中有一个属性,叫priority支持设置用例的优先级。如果不带这个属性,默认priority是等于0,而且priority值越小,优先级越高。来看看下面的举例。

package com.java.learn;import org.testng.annotations.Test;/** * create by Anthony on 2017/10/31 */public class TestNG_Demo2 {    @Test(priority = 2)    public void test1(){        System.out.println("test1");    }    @Test(priority = 4)    public void test2(){        System.out.println("test2");    }    @Test(priority = 1)    public void test3(){        System.out.println("test3");    }    @Test    public void test4(){        System.out.println("test4");    }}

上面四个测试用例,我设置的优先顺序是test4->test3->test1->test2,运行一下,看看是不是这个效果。

关于enabled和priority属性的基本使用方法就介绍到这里。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-10-31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档