【问题标题】:How do assert one list in another list with same order如何以相同的顺序在另一个列表中断言一个列表
【发布时间】:2018-07-23 09:51:17
【问题描述】:

我有一个包含最近 5 个订单日期的列表

List<String> recentFiveOrdersDates = new ArrayList<>();

列表中的值为:

["20/07/2018", "19/07/2018", "18/07/2018", "18/07/2018", "18/07/2018"]

我有另一个包含所有订购日期的列表:

List<String> AllOrderDates = new ArrayList<>();

这个列表中的值是:

["20/07/2018", "19/07/2018", "18/07/2018", "18/07/2018", "18/07/2018", "17/07/2018", "17/07/2018", "16/07/2018", "16/07/2018", "12/07/2018", "12/07/2018", "17/05/2018"]

现在我想在所有订单列表中断言最近的五个订单列表。是否可以验证它们的顺序相同?

我使用了 hamcrest 的 assertThat() 方法,但我不确定它是否以同样的方式工作

assertThat(AllOrderDates, contains(recentFiveOrdersDates.toArray()));

【问题讨论】:

  • 也许用AllOrderDates.subList(0, recentFiveOrdersDates.size()) 或类似的东西来测试相等性?
  • @ Arnaud Denoyelle,这可能是这样,但是当我在断言中使用它时,它给出了例外。知道如何在断言中使用这个吗?

标签: java assert assertions hamcrest


【解决方案1】:

contains(T... items) 方法已经满足了排序要求。

如果您不想要订购,您可以使用containsInAnyOrder(T... items)。

【讨论】:

  • 感谢您的宝贵回复。但你知道,当我在主列表中断言子列表时,它显示Exception in thread "main" java.lang.AssertionError。是不是我们必须断言大小相等的列表?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-07-15
  • 2023-03-18
  • 1970-01-01
  • 1970-01-01
  • 2011-08-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多