Olá pessoal tudo bem? fui escalado para realizar teste unitários no meu emprego de programação, porem estou o dia inteiro quebrando a cabeça com esse problema:
Possuo um Controller
public class GenericValuesResource {
private final GenericValuesService genericValuesService;
@GetMapping("/{type}")
private DeferredResult<ResponseEntity<?>> getAll(Pageable pageable, @PathVariable("type") String type) {
final DeferredResult<ResponseEntity<?>> dr = new DeferredResult<>();
dr.setResult(ResponseEntity.ok(this.genericValuesService.findAll(pageable, type)));
return dr;
}
}
Possuo tambem uma service que foi mockada. ela possui metodos protected que não coloquei aqui.
public class GenericValuesService {
private final GenericValuesRepository genericValuesRepository;
private final MonesIntegrationService monesIntegrationService;
private final WorkspaceRepository workspaceRepository;
public Page<GenericValues> findAll(Pageable pageable, String type) {
GenericValuesType genericValue = null;
try {
genericValue = GenericValuesType.valueOf(type);
} catch (Exception e) {
throw new GenericValuesException(type);
}
this.updateValuesFromMones(genericValue);
return this.genericValuesRepository.findByWorkspaceAndType(User.currentUser().getWorkspace(), genericValue, pageable);
}
no meu teste eu mockei a classe e mockei o comportamento esperado do metodo.
@RunWith(MockitoJUnitRunner.class)
class GenericValuesResourceTest {
@MockBean
private GenericValuesService genericValuesService;
@Autowired
private GenericValuesResource genericValuesResource;
@BeforeEach
public void setup(){
RestAssuredMockMvc.standaloneSetup(this.genericValuesResource);
}
@Test
void getAll() {
Page<GenericValues> page = Mockito.mock(Page.class);
Pageable pageable = Mockito.mock(Pageable.class);
Mockito.when(this.genericValuesService.findAll(pageable,"title")).thenReturn(page);
}
}
Porem apresenta este erro
java.lang.NullPointerException: Cannot invoke “
xxx.service.GenericValuesService.findAll(org.springframework.data.domain.Pageable, String)” because “this.genericValuesService” is null
Alguem consegue me auxiliar,?