Spring 으로 서버를 개발하다 보면 짠 코드가 설계한 대로 작동하는지 확인이 필요하다.
그럴 때 필요한 것이 Test이다.
Spring 의 구조는 아래와 같이 이루어져 있다.
Src
ㄴ main
ㄴ test
main은 실질적으로 코드를 작성해 개발하는 공간이고
test는 main에서 작성한 코드가 제대로 작동하는지 확인하는 공간이다.
❓ 단위 테스트 작성한 코드가 의도대로 작동하는지 알아보기 위해 작은 단위로 테스트자바 단위테스트 프레임워크
public class MemoryMemberRepositoryTest {
MemoryMemberRepository 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);
}
}
Junit의 테스트 코드에 사용되어 가독성과 편의성을 높여주는 라이브러리
impot
import org.junit.jupiter.api.Test;
import static org.assertj.core.api.Assertions.*;
AssertJ의 코드의 시작은 assertThat()으로 시작
assertThat() 은 연쇄적으로 메소드들을 호출해 테스트코드를 작성할 수 있다.
ex)
assertThat(actual).isNotEmpty().isEqualTo(expected);
org.assertj.core.api package summary - assertj-core 3.26.3 javadoc
Test class 같은 경우에는 “Test 하고자 하는 class 이름” + “Test “으로 class 명을 작성한다.
단축키를 사용하면 test class가 바로 생성된다.
⚙ 단축키 : Shift + Command + TBehavior Deiven Development
테스트 코드를 작성할 때에는 BDD스타일인 given, when, then을 따라 작성하도록 하자