
Spring boot를 생성하면 main folder 외에 test folder가 같이 생성된다. 이 test folder에서는 main code에 영향을 주지 않게 코드를 test 해볼 수 있다.
사진과 같이 repository-> UserRepositoryTest 생성

userRepository를 만들어준다. 여기서 주목할 점은 일반적으로 객체를 생성할 때는
private UserRepository userRepository = new UserRepository();
위와 같이 생성을 하지만, Spring에서는 Dependency Injection(의존성 주입)이라는 개념으로 우리가 직접 객체를 만들지 않고, Spring에서 객체를 직접 관리(의존성 주입)를 하겠다는 개념이다.

test를 사용하려면 먼저 ApplicationsTests를 상속받아야 한다.

Test하려는 method위에 test annotation을 붙여준다. user instance에 값을 저장하고 userRepository에 save를 하면 SQL에 값이 들어감을 확인할 수 있다.


userRepository는 여러 method를 제공하는데 그 중 findById method를 이용해서 read를 진행한다. parameter숫자 뒤에 L이 붙은 이유는 Id를 Long type으로 지정했기 때문이다.

Logic은 read와 동일하다.

Test코드에서 delete같은 경우 DB의 data가 지워지기 때문에 test를 위해 값을 자꾸 넣어주어야 하는데, Transactional ( transactional이 2개가 뜨는데 spring.framework 의 transactional annotation을 선택해야 한다 ) annotation을 붙여주면 실제 동작이 일어나도 DB의 값이 삭제되지 않는다.