[SPRING] PersistentEntityResourceAssembler를 사용하는 사용자 지정 RepositoryRestController 테스트
SPRINGPersistentEntityResourceAssembler를 사용하는 사용자 지정 RepositoryRestController 테스트
일부 영구 엔터티에 대한 리소스를 노출하는 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.
아마도 전체 데이터 레이어가 누락 되었기 때문에 여기에 제대로 구성되지 않은 것 같습니다. PersistentEntityResourceAssembler를 조롱하는 방법이 있습니까? 아니면 여기에서 사용할 수있는 또 다른 접근법입니까?
해결법
-
==============================
1.나는 지금으로 끝났다 :
나는 지금으로 끝났다 :
@RunWith(SpringRunner.class) @SpringBootTest @AutoConfigureMockMvc
테스트의 다운 사이트는 테스트가 전체 Spring 애플리케이션 컨텍스트를 시작한다는 것입니다 (그러나 서버는 제외).
-
==============================
2.나는 약간 해키 한 해결책을 여기서 끝내었다.
나는 약간 해키 한 해결책을 여기서 끝내었다.
이상적입니다. PersistentEntityResourceAssembler에 의존 할 수있는 충분한 데이터 영역을 얻는 방법이 있는지 알고 싶습니다.
from https://stackoverflow.com/questions/46658333/testing-a-custom-repositoryrestcontroller-that-uses-a-persistententityresourceas by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 스프링 배치 프로세서에서 비동기식 REST API 호출하기 (0) | 2019.04.28 |
---|---|
[SPRING] 동일한 유형의 사용자 정의 리졸버가 추가 될 때 기본 인수 분석기에서 어떤 일이 발생합니까? (0) | 2019.04.28 |
[SPRING] Spring이 속성 파일에서 삽입 될 때 SpEL 표현식의 모든 문자 / 표현식을 평가할 수 있습니까? (0) | 2019.04.28 |
[SPRING] 컬링 경로를 통해 Amazon S3에 업로드 (0) | 2019.04.28 |
[SPRING] 최대 절전 모드와 @ 트랜잭션을위한 스프링 데이터 소스 설정하기 (0) | 2019.04.28 |