Testando um RepositoryRestController personalizado que usa um PersistentEntityResourceAssembler
eu tenho umRepositoryRestController
que expõe recursos para algumas entidades persistentes.
Eu tenho um método no meu controlador que leva umPersistentEntityResourceAssembler
para me ajudar a gerar os recursos automaticamente.
@RepositoryRestController
@ExposesResourceFor(Customer.class)
@RequestMapping("/api/customers")
public class CustomerController {
@Autowired
private CustomerService service;
@RequestMapping(method = GET, value="current")
public ResponseEntity getCurrent(Principal principal Long id, PersistentEntityResourceAssembler assembler) {
return ResponseEntity.ok(assembler.toResource(service.getForPrincipal(principal)));
}
}
(Exemplo artificial, mas economiza muitos detalhes sobre detalhes irrelevantes do meu caso de uso)
Gostaria de escrever um teste para o meu controlador (meu caso de uso real realmente vale a pena testar) e estou planejando usar o @WebMvcTest.
Então, eu tenho a seguinte classe de teste:
@RunWith(SpringRunner.class)
@WebMvcTest(CustomerController.class)
@AutoConfigureMockMvc(secure=false)
public class CustomerControllerTest {
@Autowired
private MockMvc client;
@MockBean
private CustomerService service;
@Test
public void testSomething() {
// test stuff in here
}
@Configuration
@Import(CustomerController.class)
static class Config {
}
}
Mas eu recebo uma exceção dizendojava.lang.NoSuchMethodException: org.springframework.data.rest.webmvc.PersistentEntityResourceAssembler.<init>()
Presumivelmente, algo não está sendo configurado corretamente aqui porque estou com falta de toda a camada de dados. Existe alguma maneira de zombar doPersistentEntityResourceAssembler
? Ou outra abordagem que eu poderia usar aqui?