def expectedResults = [ ... ] //the list I expect to see
def isEqual = true;
when:
def realResults = getRealResultsMethod() //get real results in a list here
expectedResults.each {isEqual &= realResults.contains(it)}
then:
isEqual
0 * errorHandler.handleError(_) //by the way assert that my errorHandler is never called
更新
更准确地说。我想知道这两个列表是否有相同的对象,两个列表都没有额外的对象,顺序无关紧要。例如:
list=[1,5,8]
list1=[5,1,8]
list2=[1,5,8,9]
println(list == list1) //should be equal, if we use == not equal
println(list == list2) //should not be equal, if we use == not equal
只要做:
when:
def expectedResults = [ ... ]
def realResults = getRealResultsMethod()
then:
realResults == expectedResults
或者,如果您不关心顺序(这违反了列表的约定,但您可以这样做),您可以:
then:
realResults.sort() == expectedResults.sort()
或者把它们转换成集什么的
我有类,它只使用id属性定义equals。它还有另一个方法(称为“are同”),它检查给定参数是否具有与此对象属性相等的一些重要属性(并且它忽略id)。 在测试中,我想检查两个集合是否使用arame as“custom equals”方法相同(最好忽略顺序,不依赖hashCode,这显然与arame不一致)。 我想知道,是否有比写包装纸更简单的方法。写这样的东西会更愉快 Hamcrest示例在处理
我找到了junit的解决方案,但需要TestNG的解决方案。还有比编写一个自己的for循环更有用的想法吗?
我在Codewars.com参加培训测试, 说明是: 在此kata中,您必须在给定字符串的情况下,用字母在字母表中的位置替换每个字母。 如果文本中的任何内容不是字母,请忽略它,不要返回它。“A”=1,“B”=2. 我已经制作了这样的PHP脚本 但当我提交我的答案时,它包含的错误就像 请谁能帮忙修一下?告诉我为什么它显示错误的细节?
我想检查两个列表(比方说,ArrayList)是否有完全相同的实例类,基于预期的列表。为此,我构建了下一个方法,但我想知道是否有另一种使用某些库的奇特方法,比如assertJ。 任何建议都是非常受欢迎的。谢谢
输出:[A,B,C,D,E,F,G,H,I,J,K,L]