본문 바로가기

분류 전체보기76

@WebMvcTest 환경에서 Spring Security 403 에러 본 글은 정확하지 않을 수 있습니다. 참고용으로만 봐주시면 감사하겠습니다. 미리 보기 @WithSecurityContext 사용하면 됩니다. 상황 spring boot 사용 spring security를 다른 분이 담당하여 나는 잘 모름 jwt 토큰 방식 @AuthenticationPrincipal 커스텀해서 사용 webMvcTest, contoller unit test 1차 문제 발생 @WebMvcTest는 주로 컨트롤러 단위 테스트에서 많이 사용된다. 그렇기 때문에 @SpringBootTest와 달리 모든 bean을 가져오지 않는다. 우리가 설정해 준 SecurityConfig 클래스 또한 가져오지 않는다. 여기서 테스트의 결과가 계속 403이 나오는 문제가 발생한다. 그 이유는 Spring Secu.. 2023. 1. 28.
spring jpa의 mappedBy 알아보기 본 글은 정확하지 않을 수 있습니다. 참고용으로만 봐주시면 감사하겠습니다. 인프런의 김영한님 강의 [자바 ORM 표준 JPA 프로그래밍 - 기본편] 을 보고 정리한 내용입니다. 미리 보기 JPA의 양방향 관계에서 연관관계의 주인을 정하기 mappedBy를 사용한다. // 반 엔티티 @Entity public class Room { @Id private Long id; @OneToMany(mappedBy = "room") // 연관관계 주인의 이름 지정 private List students = new ArrayList(); } // 학생 엔티티 @Entity public class Student { @Id private Long id; private String name; @ManyToOne @JoinC.. 2023. 1. 26.
spring rest docs 적용방법 본 글은 정확하지 않을 수 있습니다. 참고용으로만 봐주시면 감사하겠습니다. spring rest docs 공식 사이트 https://spring.io/projects/spring-restdocs spring boot 2.7.5 gradle 7.6 Junit5 MvcMock 도구 선정 스프링에는 문서화를 도와주는 도구로 크게 Spring REST Docs와 Swagger가 존재한다. Swagger Spring REST Docs 장점 1. 동적 api 문서 페이지를 제공하여 직접 요청을 보내 테스트할 수 있다. 2. 문서 적용이 간단하다. 1. 운영 코드에 영향을 주지 않는다. 2. 테스트 코드를 성공해야 문서를 작성할 수 있다. (테스트 강요) 단점 1. 운영 코드에 문서관련 로직을 추가해야 된다. 1. .. 2023. 1. 21.
spring 테스트 마다 table 초기화 시키는 방법 각 테스트 케이스를 개별적으로 실행할 경우 잘 통과되는데, 클래스로 전체를 한 번에 실행할 경우 실패하는 경우가 있다. 나의 경우 엔티티의 id값이 테스트를 진행하면서 증가되는 문제점이 있었다. (물론 개별적으로 진행하면 성공함) 이러한 문제점을 해결하기 위해 매 테스트마다 테이블 데이터를 초기화시켜 주는 작업을 추가시켜 주었다. // 원하는 결과물 @BeforeEach void beforeEach() { databaseCleaner.execute(); } DatabaseCleaner 클래스 생성 전체적인 흐름 최초로 한 번 db에 들어있는 table 이름을 받아서 list에 담아줍니다. 매번 테스트가 진행되기 전 table의 데이터를 초기화해줍니다. 전체 코드 @Component public class.. 2023. 1. 17.
반응형