首页 > 其他分享 >Junit - 如何测试List

Junit - 如何测试List

时间:2023-08-07 21:33:54浏览次数:43  
标签:assertThat List object list 测试 Test bob Junit

背景

测试过程中,需要校验查询列表 返回数据的正确性。

常见的需求如:

  1. 验证查询条件正确性:输入某查询条件,验证返回结果的List所有记录的 该字段 均为输入条件;
  2. 验证数据正确性:验证查询结果中,某字段不能为空,某字段一定需要 > 0,某字段是个List,但是List的Size一定不为0;
  3. 添加数据后,查询列表可以包含该数据;

foreach 理论上也可以,但是每次写起来有点麻烦,就可以使用 hamcrest

本文地址:https://www.cnblogs.com/hchengmx/p/17612768.html

方式

@Test
void object_list_test(){
    List<Person> list = Arrays.asList(
            new Person("bob", "andy"),
            new Person("bob", "judy")
    );


    //Test not empty list
    assertThat(list, not(IsEmptyCollection.empty()));

    //Test every object property
    assertThat(list, everyItem(hasProperty("firstName",not(blankOrNullString()))));
    assertThat(list, everyItem(hasProperty("firstName",is("bob"))));

    //Test contains object property
    assertThat(list, hasItem(hasProperty("lastName",is("andy"))));

    //Test contains object
    Person person = new Person("bob","andy");
    assertThat(list, hasItem(person));

    assertThat(list, IsCollectionWithSize.hasSize(2));
}

参考资料:
JUnit - How to test a List - Mkyong.com
org.hamcrest.collection (Hamcrest)

标签:assertThat,List,object,list,测试,Test,bob,Junit
From: https://www.cnblogs.com/hchengmx/p/17612768.html

相关文章

  • 如何使用Microsoft List的评级功能促进用户的协作和决策
    博客链接:https://blog.51cto.com/u_13637423MicrosoftLists是一个多功能的应用程序列表,可以使团队有效地组织、跟踪和共享相关信息,在MicrosoftLists中有一个非常重要且有趣的功能:Rate(评级)功能,用户可以针对列表中的项目完成评级并提供反馈。本文将给大家介绍如何启用MicrosoftLis......
  • 2023.7.3测试
    T1边的方向一个无重边、自环的无向图,现在给每条边标上方向,要求每个点有且只有一条出边,求有多少种合法的方案,答案模\(998244353\)\(1\leqn,m\leq2\times10^5\)不算很难的题若\(m<n\)或者存在度数为\(0\)的点直接输出\(0\)之后把所有度数为\(1\)的点的边全部标好方......
  • 谷歌Linux内核自动测试平台架构介绍-用自动测试测试难以测试的问题
    1摘要内核和硬件等低级系统已被证明极难进行有效测试,因此,许多内核测试都是以手动为主方式进行的。现有的大多数测试框架都是为测试与底层平台隔离的高级软件而设计的,而底层平台被假定是稳定可靠的。测试底层平台本身需要一套全新的假设,这些假设必须从根本上反映在框架的设计中。......
  • 2023.7.5测试
    T1排队打水小学级别的贪心题T2Oversleeping一道不错的扩欧题,一开始没反应过来,一直搞不等式……根据题意可以知道在\(B\)站停留的时间区间为\([k(2n+2m)+n,k(2n+2m)+n+m)\quad(k\in\mathbb{Z})\)清醒的时间区间为\([k'(p+q)+p,k'(p+q)+p+q)\quad(k'\in\mathbb{Z})\)......
  • 2023.8.3测试
    一场\(\rmNOIP\)模拟赛搬了四道Atcoder的题T1跑路一个\(n\timesm\)的\(01\)矩阵\(A\),从左上角出发,每次向下走或向右走,终点为右下角。若路径途中只经过\(0\),则称\(A\)为“好矩阵”。给定矩阵\(A\),每次可以选择它的一个子矩阵取反,求将\(A\)变成“好矩阵”的最小......
  • Apipost接口自动化测试入门
    今天我们来聊一聊接口自动化测试。以往我们都是以以代码的形式编写自动化测试脚本做自动化测试,网上也有非常多的攻略,那么在不会代码的情况下该怎么做接口自动化呢,今天给大家介绍Apipost自动化测试模块,不用写代码也能做接口自动化!点击左侧菜单栏「自动化测试」按钮进入自动化测试页......
  • Markdown测试页
    AwesomeEditor!Ithasbeenreleasedasopensourcein2018andhascontinuallyevolvedtoreceive10kGitHub⭐️Stars.CreateInstanceYoucancreateaninstancewiththefollowingcodeandusegetHtml()andgetMarkdown()oftheEditor.consteditor=new......
  • 性能测试-基础篇
    前言:性能是什么 每个人眼里对性能理解不一样,但是我们如果从一个App的维度来看: 用户眼中的性能:1、App使用崩溃,卡顿,延迟2、App反应慢,使用页面无反应 那开发眼中的性能:1、数据库设计是否合理2、代码逻辑、算法是否可以优化 运维眼中的性能:1、服务器资源使用是否合理......
  • 软件测试|web自动化测试神器playwright教程(二十七)
    前言使用selenium进行web自动化测试,如果我们打开了多个网页,进行网页切换时,我们需要先获取各个页面的句柄,通过句柄来区分各个页面,然后使用switch_to.window()实现切换,这样的操作比较麻烦,playwright的网页切换比selenium更为简单快捷。本文就给大家介绍一下playwright多个网页的切......
  • 软件测试|JMeter 参数化的方式有哪些
    JMeter中常见的参数化方式包括:CSV数据文件:从CSV文件中读取数据,并将其用于请求参数。数据库访问:从数据库中读取数据,并将其用于请求参数。用户定义的变量:手动定义变量值,并将其用于请求参数。随机变量:随机生成变量值,并将其用于请求参数。Counter:生成一个递增的计数器,并将其......