Это далеко от идеала - я хотел бы знать, есть ли способ получить достаточно уровня данных, от которого я могу зависеть

я естьRepositoryRestController это предоставляет ресурсы для некоторых постоянных объектов.

У меня есть метод на моем контроллере, который принимаетPersistentEntityResourceAssembler чтобы помочь мне генерировать ресурсы автоматически.

@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)));
    }
}

(Придуманный пример, но он экономит слишком много подробностей о нерелевантных деталях моего варианта использования)

Я хотел бы написать тест для моего контроллера (мой реальный вариант использования действительно стоит протестировать), и я планирую использовать @WebMvcTest.

Итак, у меня есть следующий тестовый класс:

@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 {
    }

}

Но я получаю исключение, сказавjava.lang.NoSuchMethodException: org.springframework.data.rest.webmvc.PersistentEntityResourceAssembler.<init>()

Предположительно, что-то здесь не настраивается правильно, потому что мне не хватает всего слоя данных. Есть ли способ издеваться надPersistentEntityResourceAssembler? Или другой подход, который я мог бы использовать здесь?

Ответы на вопрос(2)

Ваш ответ на вопрос