【发布时间】:2021-06-23 22:40:48
【问题描述】:
我正在使用这个依赖项:
<dependencies>
<!-- Testing -->
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-all</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-all</artifactId>
<version>1.3</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<exclusions>
<exclusion>
<artifactId>hamcrest-core</artifactId>
<groupId>org.hamcrest</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>1.9.5</version>
<exclusions>
<exclusion>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</dependencyManagement>
但是,使用如下函数:
List<String> output = ..;
List<String> data = ...;
Assert.assertThat(output, Matchers.containsInAnyOrder(data));
导致错误。什么是修复 hamcrest 以使该功能真正起作用的正确方法?我试图找出正确的依赖管理,找到了上面提到的配置。
我收到的错误是断言错误,如果我比较两个相同的列表但具有混洗值,它不会通过但失败
例子:
List<String> output = Arrays.asList(
"text1\t1",
"text2\t1",
"text3\t1",
"text4\t1",
"text5\t1",
"text6\t1",
"text7\t1",
"text8\t1",
"text9\t1",
"text10\t1"
);
List<String> output1 = Arrays.asList(
"text2\t1",
"text3\t1",
"text4\t1",
"text5\t1",
"text6\t1",
"text7\t1",
"text8\t1",
"text9\t1",
"text10\t1",
"text1\t1"
);
Assert.assertThat(output, Matchers.containsInAnyOrder(output1));
【问题讨论】:
-
请分享您得到的确切错误 - 编译或运行时错误。添加您遇到的错误的堆栈跟踪也很有用
-
@Daniel 添加了评论!
-
请提供所有输入和输出的可重现示例 - 因为这将有助于确定根本原因
-
assertThat(output).hasSameElementsAs(output1)如果我正确理解问题,这就是您要寻找的内容。