我有一个arraylist,我正在使用foreach循环将其转换为另一个不同类型的arraylist。我想使用Mockito编写测试用例。我该怎么办?
List<Product1> list1 = new ArrayList<Product1>();
List<Product2> list2 = new ArrayList<Product2>();
list1.foreach(productList1 -> list2.add(new Product2(product1.getName())));
class Product1{
}
class Product2{
String name;
public Product2(String name){
this.name=name;
}
}
答案 0 :(得分:1)
您不需要在这里嘲笑。您可以编写一个简单的测试,例如
@Test
public void testListConversionForEmpty() {
assertThat(theConvertingMethod(emptyListOfProduct1), is(emptyListOfProduct2));
}
然后您进入,并添加更多对真实内容列表执行测试的测试方法。
换句话说:当创建“真实”对象太复杂时,您只能使用模拟框架。
在您的情况下,您应该简单地实例化几个Product1和Product2对象,将它们放入列表中,并确保您的转换代码可以提供预期的结果。含义:您可以完全控制输入 而无需模拟任何东西。
(记录:is()
上有一个hamcrest匹配项)