자바에서는 JUnit이라는 프레임워크를 통해 테스트를 수행할 수 있다. 테스트는
test 디렉터리 안에서 생성하여 사용.
디렉토리 : main에 작성한 디렉토리와 통상적으로 동일하게 작성
테스트 파일명 : main에 작성한 현재 테스트하려는 파일명 + 'Test'라는 이름으로 파일 생성.
위와 같이 생성하는 것이 관례.
테스트 하려는 기능 이름으로 메소드를 만들고 위에 @Test어노테이션을 붙여준다.
다음과 같은 형식으로생성됨.
class MemoryMemberRepositoryTest {
MemberRepository repository = new MemoryMemberRepository();
@Test
public void save(){
Member member = new Member();
member.setName("spring");
repository.save(member);
Member result = repository.findById(member.getId()).get();
// Assertions.assertEquals(member, result); // org.junit.jupiter.api.Assertions
assertThat(member).isEqualTo(result); //org.assertj.core.api.Assertions;
}
...
*** .get()을 통해 값을 가져오는 것은 findById가 optional클래스이기 때문!
값 비교하기
- Assertions.assertEquals(비교할 값1, 비교할 값2)
- Assertions.assertThat(비교할 값1).isEqualTo(비교할 값2)
==> 이건 (static으로 import 하면) assertThat(비교할 값1).isEqualTo(비교할 값2) 이렇게 사용할 수도 있음.
두번째 방법이 좀 더 쉽게 사용 가능하다고 한다.
테스트 실행은 순서대로 되는 것이 아니므로 순서와
상관없이 따로 각자 잘 동작할 수 있도록 작성해줘야 한다.
때문에 테스트를 위해 객체를 저장해야 하는 경우,
각각의 테스트 메서드가 실행된 후 저장값들을 지워주는 다음과 같은 작업을 해줘야 함.
-repository.java 파일
public void clearStore(){
store.clear();
}
-repositoryTest.java 파일
@AfterEach
public void afterEach(){
repository.clearStore();
}
프로젝트가 커질수록, 테스트 사용은 필수!
rename shotcut : shift+ f6.
자바 Vo -> Entity 리스트 변환 : stream, map, collect & 람다식 (0) | 2023.04.10 |
---|---|
[Spring Boot] 테스트 클래스와 @Transactional 어노테이션 (1) | 2023.03.05 |
[Spring Boot] Entity와 Repository (0) | 2023.02.20 |
[Spring Boot] 웹개발 - 정적 컨텐츠, MVC + 템플릿 엔진, API (0) | 2023.02.19 |
[Spring Boot] (gradle) templates, View Resolver. devtools. build. (0) | 2023.02.19 |