在 jUnit 测试中,我想根据列从数据库中获取一些行name
。然后我想测试我得到的行是否具有我期望的名称。我有以下内容:
Set<MyClass> typesToGet = MyClassFactory.createInstances("furniture",
"audio equipment");
Collection<String> namesToGet = Collections2.transform(typesToGet,
new NameFunction<MyClass, String>());
List<MyClass> typesGotten = _svc.getAllByName(typesToGet);
assertThat(typesGotten.size(), is(typesToGet.size()));
Collection<String> namesGotten = Collections2.transform(typesGotten,
new NameFunction<ItemType, String>());
assertEquals(namesToGet, namesGotten); // fails here
我目前遇到此故障:
java.lang.AssertionError:预期:com.google.common.collect.Collections2$TransformedCollection<[音频设备,家具]>,但原为:com.google.common.collect.Collections2$TransformedCollection<[音频设备,家具]>
那么,什么是最简洁、最简洁的方法来测试我从数据库中取回的行是否name
与我说的我想要的名称相匹配?我可以有一个for
循环遍历并检查一个列表中的每个名称是否存在于另一个列表中,但我希望更简洁。类似以下伪代码的东西会很好:
List<MyClass> typesGotten = ...;
["furniture", "audio equipment"].equals(typesGotten.map(type => type.getName()))