У меня есть тест JUnit, который не выполняется при выполнении:
$ mvn -U clean test
Тем не менее, когда я выполняю сборку, используя install
, она успешно выполняется:
$ mvn -U clean install
Вопрос : Кто-нибудь сталкивался с этим раньше, и если да, что может быть причиной этого?
Код, который я тестирую, преобразует иерархию сущностей в аналогичную иерархию DTO. Существует поддельный Function
, который возвращает List
из 4 Child
сущностей для данного String
, введенный в тестируемый класс.
Ошибка возникает, когда из ParentDTO
получено List
из ChildDTO
экземпляров. Она должна содержать 4 ChildDTO
экземпляра, но вместо этого пуста.
Использование Maven 3.5.0
Пример кода
Классы сущностей:
public class Child {
private String name;
}
public class Parent {
private List<Child> children;
public List<Child> getChildren() {
return children;
}
}
Для этого обсуждения предположим, что классы DTO близко соответствуют этим объектам.
тестируемый класс:
public class ThingToTest {
@Autowired
private Function<String, List<Child>> fetchChildren;
public ParentDTO doSomething(Parent parent) {
List<Child> childList = fetchChildren.apply("John");
// Convert to DTO representations
return parentDto;
}
}
Тестовый модуль в вопросе:
@RunWith(MockitoJUnitRunner.class)
public class MyTest {
@Mock
private Function<String, List<Child>> fetchChildren;
@InjectMocks
private ThingToTest thingToTest;
@Test
public void testDoSomething() {
// Manually create a List of Child instances.
List<Child> mockListOfChildren = generateChildren();
// Mock the response to the Function's apply() method.
Mockito.when(fetchChildren.apply("some-string")).thenReturn(mockListOfChildren);
// Execute the code to be tested.
ParentDTO parentDto = thingToTest.doSomething();
assertNotNull(parentDto);
List<ChildDTO> childList = parentDto.getChildren();
assertNotNull(childList);
assertEquals(4, childList.size()); // <- Fails here: "expected:<4> but was:<0>"
}