java - 如何使用 Hamcrest 断言一个通用的整数列表?

标签 java testing junit matching hamcrest

我正在尝试将整数列表与 Hamcrest 匹配,在线查看了一些示例,但我遇到了运行时异常。

有人可以告诉我什么是正确的语法吗?

List<Integer> numbers = Arrays.asList( 1, 2, 3, 4, 5 );
assertThat((List<Object>) numbers, hasItem(hasProperty("value", is(1))));
assertThat((List<Object>) numbers, hasItem(hasProperty("value", is(2))));
assertThat((List<Object>) numbers, hasItem(hasProperty("value", is(3))));
assertThat((List<Object>) numbers, hasItem(hasProperty("value", is(4))));
assertThat((List<Object>) numbers, hasItem(hasProperty("value", is(5))));

谢谢

最佳答案

如果列表项的顺序无关紧要:

assertThat(numbers, hasItems(1, 2, 3, 4, 5));

如果是:

assertThat(numbers, is(equalTo(Arrays.asList(1, 2, 3, 4, 5))));

如果集合不应包含其他元素,则还要检查大小:

assertThat(numbers, hasSize(5));

关于java - 如何使用 Hamcrest 断言一个通用的整数列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13878477/

相关文章:

java - Spring Bean 总是 POJO 吗?

java - Maven 故障安全插件重新运行属于套件一部分的单个失败测试

java - 如何使用 Mockito 测试要测试的类中的 throws 子句

testing - 澄清此默认 rspec Controller 测试并使其通过

Java - 如何测试一些代码?

java - 我如何调用自定义 hamcrest 匹配器?

java - Kafka 和 clojure 没有 KafkaConsumer 对象的 subscribe 方法

java - Java中的声音问题

java - 在网格顶部绘图

testing - Haskell 测试工作流程