是否可以匹配列表,无论Spock交互的顺序如何?
例如,如果我有以下方法:
ColumnDefinition
我想测试public void execute(List<User> users)
{
List<User> admins = users.stream().filter(User::isAdmin).collect();
worker.initAdmins(admins);
}
是否与我期望的用户一起调用如下:
worker.initAdmins
问题是我的互动没有匹配,因为我无法保证传入List的顺序。这可以解决吗?
答案 0 :(得分:1)
或者,您可以在方法调用期望中转换为Set
:
1 * worker.initAdmins(expectedAdminList as Set)
请注意,这假设您的传入列表中没有重复项可靠。
答案 1 :(得分:0)
我最终找到了一个有效的解决方案。对于其他任何人来说,它可能在将来有所帮助:
1 * worker.initAdmins({[it.containsAll(expectedAdminList)] && it.size() == expectedSize})