Maven выполняет тесты по-разному при запуске «test» и «install»? - PullRequest
0 голосов
/ 02 апреля 2019

У меня есть тест 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>"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...