TDD(Test Driven Development)는 테스트 주도 개발로, 소프트웨어를 개발하는 여러 방법론 중 하나이다.
제품이 오류 없이 정상 작동하는지 확인하기 위해 모든 코드는 프로그래머가 작성하고 나서 테스트를 거치게 된다.
TDD에서는 제품의 기능 구현을 위한 코드와 별개로, 해당 기능이 정상적으로 움직이는지 검증하기 위한 테스트 코드를 작성한다.
단점으로는 한 번 개발한 코드를 2번 이상 반복하게 되어 생산성의 저하가 있다.
@SpringBootTest
@Transactional // 각각의 테스트 메서드에 대해 트랜잭션을 시작하고, 테스트가 종료되면 롤백
class TagServiceTest {
@Autowired
private TestService testService;
@BeforeEach
public void before(){
System.out.println("Test Before");
}
@AfterEach
public void after(){
System.out.println("Test After");
}
@Test
@DisplayName("두 수가 일치해야 성공")
public void test() throws Exception {
// Given
int number = 0;
System.out.println("Given");
// When
int generateNumber = testService.generate();
System.out.println("When");
// Then
assertThat(generateNumber).isEqualTo(number);
System.out.println("Then");
}
@Test
@DisplayName("두 수가 일치하지 않아야 성공")
public void test2() throws Exception {
// Given
int number = 0;
System.out.println("Given");
// When
int generateNumber = testService.generate();
System.out.println("When");
// Then
assertThat(generateNumber).isNotEqualTo(number);
System.out.println("Then");
}
}