【发布时间】:2013-07-10 12:23:42
【问题描述】:
我正在测试一个返回 Object[] 列表的服务
List<Object[]> list = someService.someMethod()
list.each { Object[] row ->
assertEquals(A_SIZE,row.length)
}
我通过调试器仔细检查,list的元素是Object[8],但是row被初始化为一个Object[1],其中包含一个Object[8],所以测试失败,除非A_SIZE为1(这在我的场景)。 如果我将断言更改为:
assertEquals(A_SIZE, row[0].length)
测试顺利,但我不明白为什么我需要“[0]”,因为据我从 Groovy 规范了解,“行”应该是 Object[8]。
我正在使用 groovy 2.1 和 grails 2.3M2;该列表来自 MyDomainClass.createCriteria()。
【问题讨论】:
-
闻起来像 Groovy 类型强制中的一个错误...作为一种解决方法,您可以使用
list.each { row -> -
有效!请发布解决方案作为回复,我会接受。谢谢
-
完成 :-)(我认为这是根本原因)