Spring - TDD

iseon_u·2022년 5월 21일
0

Spring

목록 보기
5/33
post-thumbnail

TDD


TDD 테스트 주도 개발

  • Test-Driven Development
  • 테스트 클래스를 먼저 만든 후에 구현 클래스를 개발하는 방식
  • 여러 명이서 개발할 때는 테스트 케이스 작성은 필수

회원 리포지토리 테스트 케이스 작성

  • 개발한 기능을 실행해서 테스트 할 때 자바의 main 메서드를 통해서 실행하거나, 웹 애플리케이션의 컨트롤러를 통해서 해당 기능을 실행한다.
  • 이러한 방법은 준비하고 실행하는데 오래 걸리고, 반복 실행하기 어렵고 여러 테스트를 한 번에 실행하기 어렵다는 단점이 있다.
  • Java 는 JUnit 이라는 프레임워크로 테스트를 실행해서 이러한 문제를 해결한다.

회원 리포지토리 메모리 구현체 테스트

src/test/java 하위 폴더에 생성

@Test

  • JUnit 테스트 어노테이션
  • 테스트 하려는 메서드에 달면 테스트 가능 메서드로 전환

검증

  • save 메서드
    • DB 의 데이터와 객체를 생성해서 가져온 데이터와 비교해서 똑같다면 검증 성공

JUnit 문법

Assertions.assertEquals(expected, actual);

Assertions.assertEquals(member, result); // 똑같다면 검증 성공
Assertions.assertEquals(member, null); // 틀리다면 검증 실패

Assertions.assertThat(actual).isEqualTo(expected);

Assertions.assertThat(member).isEqualTo(result);

@AfterEach

public void clearStore() {
        store.clear();
    }
@AfterEach
public void afterEach() {
		repository.clearStore();
}
  • 테스트가 끝날 때마다 저장소 삭제
  • 테스트가 끝나고 나면 데이터를 정리해야 나머지 테스트에 영향을 안끼친다.
  • 테스트는 순서, 의존 관계 없이 설계해야 한다.
profile
🧑🏻‍💻 Hello World!

0개의 댓글