AssertEquals 2 列表忽略顺序

2024-03-04

我相信这应该是一个非常简单的问题。但不知何故我无法在谷歌中找到答案。

假设我有 2 个字符串列表。首先包含“字符串A”和“字符串B”,第二个包含“字符串B”和“字符串A”(注意顺序差异)。我想测试它们JUnit检查它们是否包含一模一样字符串。

是否有任何断言可以检查忽略顺序的字符串的相等性?对于给定的示例 org.junit.Assert.assertEquals 抛出 AssertionError

java.lang.AssertionError: expected:<[String A, String B]> but was:<[String B, String A]>

解决方法是首先对列表进行排序,然后将它们传递给断言。但我希望我的代码尽可能简单和干净。

I use 汉克雷斯特 1.3, JUnit 4.11, 莫基托 1.9.5.


正如你提到的,你使用Hamcrest http://hamcrest.org/,
所以我会选择 Matchers 集合中的一个

import static org.hamcrest.collection.IsIterableContainingInAnyOrder.containsInAnyOrder;
import static org.junit.Assert.assertThat;

public class CompareListTest {

    @Test
    public void compareList() {
        List<String> expected = Arrays.asList("String A", "String B");
        List<String> actual = Arrays.asList("String B", "String A");
        
        assertThat("List equality without order", 
            actual, containsInAnyOrder(expected.toArray()));
    }
    
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AssertEquals 2 列表忽略顺序 的相关文章

  • 使用 Android 发送 HTTP Post 请求

    我一直在尝试从 SO 和其他网站上的大量示例中学习 但我无法弄清楚为什么我编写的示例不起作用 我正在构建一个小型概念验证应用程序 它可以识别语音并将其 文本 作为 POST 请求发送到 node js 服务器 我已确认语音识别有效 并且服务
  • Final字段的线程安全

    假设我有一个 JavaBeanUser这是从另一个线程更新的 如下所示 public class A private final User user public A User user this user user public void
  • 无法展开 RemoteViews - 错误通知

    最近 我收到越来越多的用户收到 RemoteServiceException 错误的报告 我每次给出的堆栈跟踪如下 android app RemoteServiceException Bad notification posted fro
  • Mockito when().thenReturn 不必要地调用该方法

    我正在研究继承的代码 我编写了一个应该捕获 NullPointerException 的测试 因为它试图从 null 对象调用方法 Test expected NullPointerException class public void c
  • 无法解析插件 Java Spring

    我正在使用 IntelliJ IDEA 并且我尝试通过 maven 安装依赖项 但它给了我这些错误 Cannot resolve plugin org apache maven plugins maven clean plugin 3 0
  • 如何在PreferenceActivity中添加工具栏

    我已经使用首选项创建了应用程序设置 但我注意到 我的 PreferenceActivity 中没有工具栏 如何将工具栏添加到我的 PreferenceActivity 中 My code 我的 pref xml
  • Coffeescript + 单元测试:全局变量?

    我正在尝试使用 Jasmine 对用 CoffeeScript 编写的小型应用程序进行单元测试 我发现很多资料都说单元测试可以在从 CoffeeScript 编译的 JS 上完美地完成 如果所有内容都包装在匿名函数中以避免污染名称空间 如何
  • 禁止的软件包名称:java

    我尝试从数据库名称为 jaane 用户名 Hello 和密码 hello 获取数据 错误 java lang SecurityException Prohibited package name java at java lang Class
  • 如何从 appsettings.json 文件中的对象数组读取值

    我的 appsettings json 文件 StudentBirthdays Anne 01 11 2000 Peter 29 07 2001 Jane 15 10 2001 John Not Mentioned 我有一个单独的配置类 p
  • 使用Caliper时如何指定命令行?

    我发现 Google 的微型基准测试项目 Caliper 非常有趣 但文档仍然 除了一些示例 完全不存在 我有两种不同的情况 需要影响 JVM Caliper 启动的命令行 我需要设置一些固定 最好在几个固定值之间交替 D 参数 我需要指定
  • 加密 JBoss 配置中的敏感信息

    JBoss 中的标准数据源配置要求数据库用户的用户名和密码位于 xxx ds xml 文件中 如果我将数据源定义为 c3p0 mbean 我会遇到同样的问题 是否有标准方法来加密用户和密码 保存密钥的好地方是什么 这当然也与 tomcat
  • 如何在 javadoc 中使用“<”和“>”而不进行格式化?

    如果我写
  • 在 Mac 上正确运行基于 SWT 的跨平台 jar

    我一直致力于一个基于 SWT 的项目 该项目旨在部署为 Java Web Start 从而可以在多个平台上使用 到目前为止 我已经成功解决了由于 SWT 依赖的系统特定库而出现的导出问题 请参阅相关thread https stackove
  • Eclipse Java 远程调试器通过 VPN 速度极慢

    我有时被迫离开办公室工作 这意味着我需要通过 VPN 进入我的实验室 我注意到在这种情况下使用 Eclipse 进行远程调试速度非常慢 速度慢到调试器需要 5 7 分钟才能连接到远程 jvm 连接后 每次单步执行断点 行可能需要 20 30
  • 仅将 char[] 的一部分复制到 String 中

    我有一个数组 char ch 我的问题如下 如何将 ch 2 到 ch 7 的值合并到字符串中 我想在不循环 char 数组的情况下实现这一点 有什么建议么 感谢您花时间回答我的问题 Use new String value offset
  • Google App Engine 如何预编译 Java?

    App Engine 对应用程序的 Java 字节码使用 预编译 过程 以增强应用程序在 Java 运行时环境中的性能 预编译代码的功能与原始字节码相同 有没有详细的信息这是做什么的 我在一个中找到了这个谷歌群组消息 http groups
  • 无法捆绑适用于 Mac 的 Java 应用程序 1.8

    我正在尝试将我的 Java 应用程序导出到 Mac 该应用程序基于编译器合规级别 1 7 我尝试了不同的方法来捆绑应用程序 1 日食 我可以用来在 Eclipse 上导出的最新 JVM 版本是 1 6 2 马文 看来Maven上也存在同样的
  • 捕获的图像分辨率太大

    我在做什么 我允许用户捕获图像 将其存储到 SD 卡中并上传到服务器 但捕获图像的分辨率为宽度 4608 像素和高度 2592 像素 现在我想要什么 如何在不影响质量的情况下获得小分辨率图像 例如我可以获取或设置捕获的图像分辨率为原始图像分
  • 有没有办法为Java的字符集名称添加别名

    我收到一个异常 埋藏在第 3 方库中 消息如下 java io UnsupportedEncodingException BIG 5 我认为发生这种情况是因为 Java 没有定义这个名称java nio charset Charset Ch
  • 如何实现仅当可用内存较低时才将数据交换到磁盘的写缓存

    我想将应用程序生成的数据缓存在内存中 但如果内存变得稀缺 我想将数据交换到磁盘 理想情况下 我希望虚拟机通知它需要内存并将我的数据写入磁盘并以这种方式释放一些内存 但我没有看到任何方法以通知我的方式将自己挂接到虚拟机中before an O

随机推荐

  • 使用 D3 设置下拉菜单的默认选择

    我创建了一个包含几个月的下拉菜单作为选项 但想预先指定一个选项作为默认值 然而 默认选择似乎顽固地保留在列表中的第一个选项 我尝试了下面的代码 这对我来说很有意义 因为对于任何其他属性 设置一个简单的比较就足以改变该属性的值 var def
  • 在名称为“appServlet”的 DispatcherServlet 中未找到带有 URI [/pms/j_spring_security_check] 的 HTTP 请求的映射

    我开发了一个 Spring 应用程序 并在其中实现了 Spring 安全集成到登录和注销功能 我使用 Spring security 和 xml 配置 但是当我登录系统时 它显示404 控制台告诉我 在名称为 appServlet 的 Di
  • 在同一个 Activity 中的两个 GridView 之间切换

    我一直在寻找如何解决几个问题 并得到了一些问题的答案 但有一件事仍在建设中 如果你们都不能帮助我 就不会完成 我一直在尝试放大和缩小 GridView 但转向了其他解决方案 因为我只需要两种状态 概述和详细视图 因此我制作了两个 Gridv
  • SF 符号分层、调色板和多色渲染模式颜色?

    在 WWDC 2021 上 Apple 宣布了 SF Symbols 3 它将在 iOS 15 和 macOS 12 中支持新的多色 SF Symbols 新的色彩渲染模式可通过图层注释增加符号的深度和强调 https developer
  • Vue 组合 API 使用 VueAxios?

    I am in main js输入vue axios main js import createApp from vue import axios from axios import VueAxios from vue axios impo
  • 你能让弹性盒子项扩展以适应父项而不是内容吗?

    我正在使用一个flexbox使 div 占据浏览器窗口中剩余的垂直空间 但我想防止它超出该范围 当其内容超出其垂直尺寸时 我希望滚动条显示在现在太小的 Flexbox 子项中 这可能吗 或者我应该使用其他一些布局技术吗 这是一个 JSFid
  • 闭包返回值(以前为completionBlock)

    我想在长期操作完成后返回一些值 但此外我想将逻辑和图形用户界面分开 例如 我有两节课 SomeServices swift 有一个名为 getDataFromService 的方法 MyTableViewController swift 将
  • 在 jQuery 中使用 FormData 提交表单 - 无需 Ajax 且无需隐藏字段

    我有一个函数 可以在表单提交上执行一些自定义工作 通过 Ajax 发送一些数据 将返回的数据附加到新的 FormData 对象中 现在我需要使用此 FormData 以常规方式 而不是通过 Ajax 提交表单 我知道它可以通过隐藏字段来实现
  • 如何检查 jpeg 是否适合内存?

    使用打开 JPEG 图像imagecreatefromjpeg很容易导致致命错误 因为所需的内存超过了memory limit A jpg小于 100Kb 的文件很容易超过 2000x2000 像素 打开时将占用大约 20 25MB 的内存
  • 如何在 Docker 容器中设置 PS1

    我想设置 PS1容器的环境变量 它帮助我识别多级或复杂的 Docker 环境设置 目前 docker 容器提示 root container id 如果我可以按如下方式更改它 我可以通过查看来识别容器 PS1提示本身 Level 1 roo
  • Spark - 写入Avro文件

    在如下流程中使用 Spark 使用 Scala API 编写 Avro 文件的常见做法是什么 从 HDFS 解析一些日志文件 对于每个日志文件应用一些业务逻辑并生成 Avro 文件 或者可能合并多个文件 将 Avro 文件写入 HDFS 我
  • 从oracle数据库获取唯一约束列名

    我正在从 UI 实现搜索功能 为此我想提供具有唯一约束的列名称下拉列表以及任何主键列 如果存在 以便用户可以使用任何这些选定的列相关数据进行搜索 我搜索过这样的查询但没有找到 就像是 SELECT COLUMN NAMEs FROM TAB
  • Android Listview 删除项目之间的任何空格

    我想删除 ListView 中不同项目之间的任何空格 代码
  • 设置 android:windowSoftInputMode="adjustPan" 时如何滚动布局?

    我的活动有一个顶部栏和一个底部栏 顶栏和底栏之间的空间我有一个线性布局 里面有几个编辑文本视图 因为我不希望每次软键盘出现时都调整布局大小 所以我在清单中为我的活动设置了 android windowSoftInputMode adjust
  • 如何禁用 Ext JS 按钮

    我有一个 id 为的按钮btnAdd我想在某些事件触发时禁用它 当某些窗口关闭时该事件发生 所以我尝试了下面的代码 但它不起作用 Ext create Ext window Window Some initialization code g
  • Swift:无法读取数据,因为它的格式不正确

    我尝试使用 Alamofire 调用 POST Api 但它向我显示格式不正确的错误 这是我的 JSON 响应 source nome LOTERIAS BELEM endereco R DO COMERCIO 279 uf AL cida
  • python 组/用户管理包

    我正在寻找python用户 组管理包 创建用户组并向该组添加 删除成员 我找到了flask dashed https github com jeanphix Flask Dashed 这或多或少是我一直在寻找的 但它只支持一个用户添加 删除
  • 将 slug 保存到数据库或动态生成更好?

    我正在开发一个 django 项目 并希望在 url 末尾包含一个 slug 就像在 stackoverflow com 上所做的那样 http example com object 1 my slug generated from my
  • Jetpack Compose - 如何在 LazyColumn 中搜索并显示房间中的特定数据?

    我想使用搜索查询从房间表中获取数据 并将结果显示在 LazyColumn 中 而不是我在那里显示的 someList 中 换句话说 如何使用 compose from room table 实现搜索功能 Getting the list f
  • AssertEquals 2 列表忽略顺序

    我相信这应该是一个非常简单的问题 但不知何故我无法在谷歌中找到答案 假设我有 2 个字符串列表 首先包含 字符串A 和 字符串B 第二个包含 字符串B 和 字符串A 注意顺序差异 我想测试它们JUnit检查它们是否包含一模一样字符串 是否有