본문 바로가기
반응형

Spring47

SpringBoot에서 Spock Mock 사용법과 문제점 문제점 Spring Boot의 @MockBean, @SpyBean은 Junit & Mockito를 지원합니다. 그러다보니 Spock을 쓴다 해도 Spring의 Bean을 Mocking하려면 Mockito 방식을 사용해야 합니다. example) @SpringBootTest class CustomerServiceSpockMockTest extends Specification { @Autowired CustomerService customerService @MockBean(name = "jdbcTemplate") JdbcTemplate jdbcTemplate def "Customer_id로_이름을_조회"() { given: given(jdbcTemplate.query(anyString(), any(BeanP.. 2018. 9. 28.
Spring Rest Docs IntelliJ에서 미리보기 IntelliJ와 Spring Rest Docs를 사용하면 필수로 설치하는게 AsciiDoc Plugin입니다. (AsciiDoc Plugin) 마크다운 Preview처럼 AsciiDoc 파일을 미리 볼 수 있도록 지원하는 아주 좋은 플러그인입니다. 하지만 Spring Rest Docs에서는 활용하기가 쉽지 않습니다. 일반적으로 Spring Rest Docs는 아래처럼 {snippets}을 기준으로 Import 할 adoc 파일 위치를 지정합니다.하지만 이렇게 {snippets} Path를 제대로 인식하지 못합니다. 아시다시피 {snippets}는 Maven/Gradle이 html파일을 만들 때 교체될 변수이기 때문입니다. build 후에 굳이 html파일에서 보지 않고, adoc 파일에서 바로 결과물을.. 2018. 6. 1.
Spring Boot & HikariCP Datasource 연동하기 안녕하세요? 이번 시간엔 Spring Boot & Hikari Datasource 연동하기 예제를 진행해보려고 합니다. 모든 코드는 Github에 있기 때문에 함께 보시면 더 이해하기 쉬우실 것 같습니다. (공부한 내용을 정리하는 Github와 세미나+책 후기를 정리하는 Github, 이 모든 내용을 담고 있는 블로그가 있습니다. ) 기존에 SpringBoot에선 tomcat-jdbc를 기본 Datasource 로 제공했었는데요. 2.0부터 HikariCP가 기본으로 변경되었습니다. (참고) HikariCP는 이전 버전에서도 많은 분들이 설정을 변경해서 사용했을정도로 인기가 많았습니다. HikariCP의 Datasource 정보를 설정하는것에 막히신 분들 혹은 오해하고 계신분들이 계셔서 한번 정리하게 되.. 2018. 5. 21.
Spring Boot Data JPA 2.0 에서 id Auto_increment 문제 해결 안녕하세요? 이번 시간엔 Spring Boot JPA 2.0 에서 PK의 Auto_increment 문제를 알아보려고 합니다. 모든 코드는 Github에 있기 때문에 함께 보시면 더 이해하기 쉬우실 것 같습니다. (공부한 내용을 정리하는 Github와 세미나+책 후기를 정리하는 Github, 이 모든 내용을 담고 있는 블로그가 있습니다. ) 문제 회사의 신규 시스템 구축을 Spring Boot 2.0으로 진행하게 되었습니다. 진행 도중 Spring Data Jpa의 @GeneratedValue가 기존과 다르게 작동하는걸 발견하게 되었습니다. 예를 들어 아래와 같이 1.5.x 에서 사용하던대로 엔티티 클래스를 생성했습니다.2.0에서도 기본 전략이 AUTO임을 확인하고 테스트 코드를 작성했는데요. 이렇게 M.. 2018. 5. 12.
Gradle Multi Module에서 Spring Rest Docs 사용하기 지난 시간에 이어 이번시간에는 Markdown이 아닌 Asciidoc으로 Spring Rest Docs를 진행하는 과정을 기록합니다. Spring Rest Docs의 asciidoc 버전은 실제 Spring 프로젝트의 문서로 사용되고 있습니다.(링크)여기서는 Spring Rest Docs + Spock + Rest Assured를 조합으로 진행할 예정입니다. (저희팀 프로젝트 스펙이라서요..) Gradle Muliti Module의 경우 요즘 많은 프로젝트에서 사용하고 있으니 여기서도 마찬가지로 적용된걸 가정하고 진행합니다. 단일 프로젝트에서 기본 버전 (MockMVC + Junit4) 적용 방법은 레퍼런스 번역을 참고하시면 됩니다. 모든 코드는 Github에 있으니 참고하시면 될것 같습니다. 1. Gr.. 2018. 5. 10.
Spring Rest Docs를 Markdown으로 작성하기 이번에 새로 시작하는 프로젝트에 Spring Rest Docs를 적용해보기로 했습니다. Spring Rest Docs를 처음 들어보시는 분들을 위해 간단하게 소개하자면, 테스트 코드를 기반으로 문서를 자동으로 생성해주는 프로젝트입니다. 팀의 API 문서 자동화를 위해 선택하게 되었는데요, Swagger가 가지고 있는 단점들을 충분히 커버해줄만하다는 생각에 선택하게 되었습니다. Spring Boot Rest Docs의 기본 조합인 Mock MVC & Asciidoc 을 사용하지 않고, Spock & Rest Assured & Markdown을 써야겠다고 생각했는데요. 이미 Groovy & Spock 기반으로 동적 언어로 테스트 코드 작성이 익숙한 상태 문서화를 위해 테스트 프레임워크를 변경하는건 배보다 배.. 2018. 4. 26.

728x90
반응형