Mockito - maqueta llamada al método sólo para determinado parámetro

oro Verde :

Quiero burlarse de una llamada a un método para un parámetro específico y llama al método real para los demás. Yo tengo:

@TestInstance(TestInstance.Lifecycle.PER_CLASS)
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
@SpringBootTest(classes = AppConfig.class)
@ActiveProfiles("mvntest")
public class OKMMoveMergeTest {
    @MockBean
    private FolderDAO folderDAO;
    ...

    @Test
    public void callDocCreateEp() throws Exception {
        Mockito.doCallRealMethod().when(folderDAO).getFoldersHierarchy(any(EHierarchyType.class));
        Mockito.doReturn(screwedHierarchy).when(folderDAO).getFoldersHierarchy(EHierarchyType.CLIENT_DOC);

        ...
    }
}

Con esto, consigo resultado burlado por folderDAO.getFoldersHierarchy(EHierarchyType.CLIENT_DOC)pero cuando intento llamarlo con cualquier otro parámetro consigoNullPointerException

Entonces, ¿qué estoy haciendo mal o cómo debería derivadas La llamada al método sólo para un parámetro en particular?

junit-Júpiter-api: 5.4.0

junit-Júpiter-motor: 5.4.0

resorte de arranque: 2.1.4.RELEASE Mockito-junit-Júpiter: 2.23.0

yevgeniy.batulin:

Es necesario crear un espía para su frijol en lugar de Mock. Puede utilizar la anotación @SpyBean. Esto creará un espía y ponerlo en el contexto de la misma manera @MockBean lo hace. En el caso del espía que tendrá un objeto real detrás de él, pero todavía será capaz de reemplazar el comportamiento si es necesario como si tuviera una maqueta. Para ejemplos ver el siguiente artículo

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=280280&siteId=1
Recomendado
Clasificación