assertThat(actual.getList(), is(Matchers.containsInAnyOrder(expectedList)));
但是想法
java: no suitable method found for assertThat(java.util.List<Agent>,org.hamcrest.Matcher<java.lang.Iterable<? extends model.Agents>>)
method org.junit.Assert.<T>assertThat(T,org.hamcrest.Matcher<T>) is not applicable
(no instance(s) of type variable(s) T exist so that argument type org.hamcrest.Matcher<java.lang.Iterable<? extends model.Agents>> conforms to formal parameter type org.hamcrest.Matcher<T>)
method org.junit.Assert.<T>assertThat(java.lang.String,T,org.hamcrest.Matcher<T>) is not applicable
(cannot instantiate from arguments because actual and formal argument lists differ in length)
我该怎么写?
如果您想断言这两个列表是相同的,请不要用Hamcrest将事情复杂化:
assertEquals(expectedList, actual.getList());
如果您真的打算执行不区分顺序的比较,可以调用containsinanyOrder
varargs方法并直接提供值:
assertThat(actual.getList(), containsInAnyOrder("item1", "item2"));
(在本例中,假设您的列表是字符串
而不是代理
。)
assertThat(actual.getList(), containsInAnyOrder(expectedList.toArray(new String[expectedList.size()]));
有人能给我解释一下hamcrest是如何比较馆藏的,以及图书馆的不同方法是用来做什么的吗 我正在试图理解IsterableContainingAnyOrder#ContainingAnyOrder方法是如何工作的 ISiterableContainingAnyOrder类中有三个重载方法:
您能帮助我在使用方法时哪里出错了吗?
我做错了什么,怎么修复?
问题内容: 您将如何简洁地声明元素的相等性,特别是在JUnit 4中? 问题答案: 您可以断言两个s彼此相等,这将调用 method。 此如果两个将传递s为相同的大小和包含相同的元素。
我正在尝试使用Optaplanner来代替我自己安排我们的工作计划。系统有一个MySQL数据库,其中包含必要的信息和关系。对于这个问题,我将只使用我需要的三个表: 在Drools我有规则 在类Job中,我有一个函数missingSkillCount(): 当我运行我的程序时,Optaplanner返回,我的员工都没有任何技能。。。 但是,当我手动使用此函数(适用于接受员工作为参数):时,它确实返回