当我有太多的Mockito when()。thenReturn()来模拟这种情况时,这是否意味着错误?

时间:2018-12-07 19:58:16

标签: unit-testing junit mockito powermock

我正在尝试使用Mockito进行单元测试以模拟案例。在测试类中,我们只有一种公共方法。因此,要模拟不同的情况,我必须模拟很多数据细节。请看下面:

when(config.booleanValue(param1)).thenReturn(true);
        when(config.doubleValue(param2).thenReturn(9999.0);
        when(myCalendar.getAppointmentNumber()).thenReturn(3);
        when(location1.getLatitude()).thenReturn(90.0);
        when(location2.getLongitude()).thenReturn(90.0);
        when(location1.getLowerBoundary()).thenReturn(12.0);
        when(address1.getId()).thenReturn(1);
        when(address1.popularity()).thenReturn(0.6);
        when(people.getLocation(any(LocalDate.class))).thenReturn(location1);
        when(people.getAddresses(any(LocalDate.class))).thenReturn(Collections.singletonList(address1));
        when(location2.getLatitude()).thenReturn(90.3);
        when(location2.getLongitude()).thenReturn(90.3);
        when(location2.getId()).thenReturn(1);
        when(customer.getLocation(any(LocalDate.class))).thenReturn(location2);
        when(myCalendar.getPrevAppointment()).thenReturn(appointment1);
        when(myCalendar.getNextAppointment()).thenReturn(appointment2);
        when(appointment1.to(appointment2)).thenReturn(15.0);
        when(appointment2.to(any(Location.class))).thenReturn(9.0);

像这样使用Mockito似乎对我来说是错的。还是我想得太多。请教我。预先感谢。

1 个答案:

答案 0 :(得分:0)

我最近有一个类似的问题。我必须测试一个函数,该函数对2d地图/图像中的每个单元格执行另一个函数。测试功能真的很复杂而且很大。最后,我将该班分为2个班。一种用于迭代,另一种用于每像元计算。然后,进行分离测试要简单得多。

您可以将您的班级分为更简单的班级吗?