当前位置: 首页 > news >正文

单元测试用例分组 demo

文章目录

  • 目标
  • 1、使用 @Category 进行用例分组
    • (1)设置用例组
    • (2)编写测试类,case设置对应的用例组
    • (3)编写执行类
    • (4)查看运行结果
    • (5)联系项目
  • 2、参数化

目标

  • 用例根据(pass情况、地图类型特点、HLL自建地图的问题)
    解决方案

  • 使用 @Category 对用例进行分组,然后参数化类中手动设置即可,可以实现预期目标

1、使用 @Category 进行用例分组


(1)设置用例组


BaiduTest、GDTest 用例组接口编写,用于方法case分组

public interface BaiduTest {
}
public interface GDTest {
}

(2)编写测试类,case设置对应的用例组


测试类,用于写测试用例,然后@Category可以进行用例分组,方法级别的

注意:不要写Log.i 打印,目前没有在Android进行操作,只用 System.out.println() 打印即可

public class A {//  用例分组,高德组@Category(GDTest.class)@Testpublic void b() {System.out.println("开始执行高德地图用例");}// 用例分组,百度组@Category(BaiduTest.class)@Testpublic void c(){System.out.println("开始执行百度地图用例");}// 用例分组,(高德、百度组)@Category({GDTest.class, BaiduTest.class})@Testpublic void d(){System.out.println("开始执行高德、百度组 共同用例");}}

(3)编写执行类

@RunWith(Categories.class)
@Suite.SuiteClasses(A.class)// 要执行的测试类
@Categories.IncludeCategory({GDTest.class})  // 通过的用例组
public class SlowTestSuite {}

(4)查看运行结果

  • b 通过,打印高德用例执行
  • D 通过,打印 高德百度 用例执行

[图片]

[图片]


(5)联系项目


此时我们的第一个目标,给用例分组就实现了。

可以将 testBaseMap 中的类 根据测试 case 的 pass 情况、地图不同的特点、图商实现但HLL未实现功能,使用@Catagory 进行分组


2、参数化


后面可以加上参数化,给单独的用例组的用例加上对应的参数.


没有想到单独用例组对应一组参数的做法,但是可以通过另一种做法绕开来实现。


在测试类中可以实现多个参数化的方法,可以只留1个,其他几个注释掉。 或者在原来参数化的data() 方法里面直接注释掉其他几个,保留一个就行。用到什么类型,解掉什么类型的注释即可


@RunWith(Parameterized.class)
public class A {private String Map_Type ;//    @Parameterized.Parameters
//    public static Collection<Object> data(){
//        return Arrays.asList(new Object[]{
//                "GD_Map_Type",  // 对应GD_MapType
//                "BD_Map_Type",  // 对应Baidu_MapType
//                "HLL_Map_Type"   // 对应HLL_MapType
//        });
//    }@Parameterized.Parameterspublic static Collection<Object> data(){return Arrays.asList(new Object[]{"GD_Map_Type",  // 对应GD_MapType});}//    @Parameterized.Parameters
//    public static Collection<Object> data(){
//        return Arrays.asList(new Object[]{      
//                "BD_Map_Type",  // 对应Baidu_MapType 
//        });
//    }//    @Parameterized.Parameters
//    public static Collection<Object> data(){
//        return Arrays.asList(new Object[]{    //               "HLL_Map_Type"   // 对应HLL_MapType//       });//   }public A(String MAp_Type){this.Map_Type = MAp_Type;}//  用例分组,高德组@Category(GDTest.class)@Testpublic void b() {System.out.println("开始执行高德地图用例");System.out.println(Map_Type);}// 用例分组,百度组@Category(BaiduTest.class)@Testpublic void c(){System.out.println("开始执行百度地图用例");System.out.println(Map_Type);}}

上面只保留了一个类型的参数 GD_Map,测试套件之后再筛选 符合高德地图的方法case用例,成功实现我们的期望效果。


@RunWith(Categories.class)
@Suite.SuiteClasses(A.class)// 要执行的测试类
@Categories.IncludeCategory({GDTest.class})  // 要求通过的高德-用例组
public class SlowTestSuite {}

最终实现,在 GD_Type 上面跑 符合 高德地图的专门用例

[图片]

http://www.lryc.cn/news/114699.html

相关文章:

  • 观察者模式(Observer)
  • 20天学会rust(二)rust的基础语法篇
  • Stephen Wolfram:嵌入的概念
  • springboot,swagger多个mapper包,多个controller加载问题
  • 湖大CG满分教程:作业训练四编程题20. 回文串(暴力×动态规划算法√)
  • 使用toad库进行机器学习评分卡全流程
  • Python数据容器——列表(list)
  • Linux CEF(Chromium Embedded Framework)源码下载编译详细记录
  • Adaptive AUTOSAR—— Communication Management 3.1
  • VMnet0 桥接设置
  • Sublime Text 4 Build 4151 4152 发布及注册方法
  • 第八篇: K8S Prometheus Operator实现Ceph集群企业微信机器人告警
  • 软件单元测试
  • Redis | 集群模式
  • 8.3day04git+数据结构
  • 04-5_Qt 5.9 C++开发指南_QComboBox和QPlainTextEdit
  • Sqlserver_Oracle_Mysql_Postgresql不同关系型数据库之主从延迟的理解和实验
  • Clickhouse学习系列——一条SQL完成gourp by分组与不分组数值计算
  • 做好“关键基础设施提供商”角色,亚马逊云科技加快生成式AI落地
  • 如何使用 ChatGPT 规划家居装修
  • 题解 | #1002.Random Nim Game# 2023杭电暑期多校7
  • 篇九:组合模式:树形结构的力量
  • 【注册表】windows系统注册表常用修改方案
  • ant-design-vue 4.x升级问题-样式丢失问题
  • 【果树农药喷洒机器人】Part3:变量喷药系统工作原理介绍
  • GoogLeNet创新点总结
  • 不同路径1、2、3合集(980. 不同路径 III)
  • 【云原生】Yaml文件详解
  • ffmpeg下载安装教程
  • uniapp之当你问起“tab方法触发时eventchange也跟着触发了咋办”时