Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

NullPointerException Arraylist.forEach Junit 5 @Test

Boa tarde, eu estou tendo problemas para conseguir realizar um teste unitário simples de um Controller. Quando realizo um teste unitário em um método do Controller, recebo o seguinte NullPointerException. Já tentei resolver de várias formas mas não estou conseguindo chegar à causa raiz. Alguém consegue dar uma força?

java.lang.NullPointerException
    at br.com.guimsmendes.dnasimians.entrypoint.controller.SimianControllerTest.isSimianOk(SimianControllerTest.java:38)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:688)
    at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
    at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
    at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149)
    at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140)
    at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:84)

Método de teste

    @Test
    void isSimianOk() {
        when(dnaUseCase.isSimian(any(DnaDomain.class))).thenReturn(true);
        ResponseEntity<Object> result = simianController.isSimian(mockValidSimianRequest());
        assertThat(result).isEqualTo(ResponseEntity.status(HttpStatus.OK).build());
    }
    private SimianRequest mockValidSimianRequest(){
        List<String> dnaSequence = new LinkedList<>();
        dnaSequence.add("ATCGA");
        dnaSequence.add("CGTAG");
        return new SimianRequest(dnaSequence);
    }

Método do Controller que está sendo chamado

    @PostMapping("/simian")
    public ResponseEntity<Object> isSimian(SimianRequest request){
        if(!dnaUseCase.isSimian(request.asDnaDomain())){
            return ResponseEntity.status(HttpStatus.FORBIDDEN).build();
        }
        return ResponseEntity.status(HttpStatus.OK).build();
    }
1 resposta
solução!

RESOLVIDO! Eu esqueci de incluir na classe o annotation @SpringBootTest