세션7. TDD 주기 반복
1. 테스트와 코드의 성장
두 번째 테스트 시나리오
테스트가 유도하는 시스템 코드의 성장
테스트 코드를 추가하고 SellerSignUpController 에 테스트에 해당하는 비지니스 로직을 추가하자.
SellerSignUpController 에 테스트에 해당하는 비지니스 로직을 추가하자. package test.commerce.api.seller.signup;
import commerce.CommerceApiApp;
import commerce.command.CreateSellerCommand;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.web.client.TestRestTemplate;
import org.springframework.http.ResponseEntity;
import static org.assertj.core.api.Assertions.assertThat;
@SpringBootTest(
classes = CommerceApiApp.class,
webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT
)
@DisplayName("POST /seller/signUp")
public class POST_specs {
...
@Test
void email_속성이_지정되지_않으면_400_Bad_Request_상태코드를_반환한다(
@Autowired TestRestTemplate client
) {
// Arrange
var command = new CreateSellerCommand(
null,
"seller",
"password"
);
// Act
ResponseEntity<Void> response = client.postForEntity(
"/seller/signUp",
command,
Void.class
);
// Assert
assertThat(response.getStatusCode().value()).isEqualTo(400);
}
}2. 매개변수화 테스트
3. 누락된 테스트 시나리오 발견
새로 발견한 테스트 시나리오
4. 올바른 입력 데이터 집합
5. 관성을 따르는 코드 구현
6. 리팩토링
리팩터링과 도구
Last updated