unit test

[상황] UserController를 Unit test 하던 도중에 기대한 값이 호출되는 것이 아닌 oauth URL로 리다이렉트 되는 상황 [원인] 여러 방법을 시도하던 도중 가상의 user를 mock 하고 돌려보니 성공했다. 원인을 확인하니까 Security 단에서 아무 역할을 가지지 않은 유저 (GUEST) 가 API를 호출하게 되면 자동적으로 리다이렉트를 시킨 것이 원인이 되었다. (그런데 왜 굳이 OAuth로 리다이렉트를 하는 것인가는 아직 확인이 안됐다...) [해결] 테스트 클래스에 @WithMockUser(roles = "USER") 어노테이션을 붙여서 가상의 User를 Mock 해주고 테스트를 진행하니 성공했다.
[상황] Repository 테스트를 진행하는 과정에서 두 객체가 같음을 기대했으나 다르다는 결과가 떴다. [해결] 각 자식 엔티티에 @EqualsAndHashCode 달아주어 재정의 해줘서 해결 [참고] https://velog.io/@mooh2jj/equals%EC%99%80-hashCode%EB%8A%94-%EC%96%B8%EC%A0%9C-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94%EA%B0%80
[문제] 상속관계 Entity(User -> Individual, Institution)를 매핑하여 사용하여 Repository Test를 진행하던 도중 id로 객체를 찾아 일치하는지에 대한 여부를 확인하였는데 Optional.isPresent() 에서 에러가 발생한 상황 [원인] 로컬 DB에 연결 되어있는 것이 아니라 팀 공용 DB에 연결되어있어 매번 테스트를 진행할 때마다 Auto Increment가 진행되어 초기에 지정한 id로 객체를 찾아오지 못하던 것 [해결] 보통 Repository test에서 객체를 찾을 때, ddl-auto의 옵션에 create를 걸지 않는 이상 id로 컬럼을 찾지 않는다고 한다. 그래서 해당 객체가 가진 정보 중 username, email 등으로 찾으면 쉽게 테스트가 ..
제로버드
'unit test' 태그의 글 목록