각 메서드마다 테스트 코드를 작성한다.
테스트 코드를 작성할 때에는 여러 어노테이션을 사용하여 테스트 코드를 작성할 수 있다.
public class CarTest {
@ParameterizedTest
@ValueSource(strings = {"one","two","three","four"})
@DisplayName("Car 객체 생성")
public void makeCar(String carName) {
assertThatCode(() -> new Car(carName))
.doesNotThrowAnyException();
}
@Test
@DisplayName("자동차 전진")
public void moveCar() {
Car car = new Car("one");
car.move(() -> true);
assertEquals(1,car.getPoisition());
}
@Test
@DisplayName("자동차 멈춤")
public void stopCar() {
Car car = new Car("one");
car.move(() -> false);
assertEquals(0,car.getPoisition());
}
}
public class CarRacingInformationTest {
List<String> carNameList;
CarRacingInformation carRacingInformation;
@BeforeEach
void setUp() {
carNameList
= Arrays.asList(new String[]{"one", "two", "three", "four"});
carRacingInformation = new CarRacingInformation();
}
@Test
@DisplayName("입력값(자동차 수,경기 횟수)이 0 이하인 경우 확인")
public void isZeroOrLess() {
assertThatThrownBy(() -> {
carRacingInformation.setCarRacingCount(-1);
}).isInstanceOf(IllegalArgumentException.class);
}
@Test
@DisplayName("경주 시도횟수가 1씩 줄어드는지")
public void checkCarRacingCount() {
carRacingInformation.setCarRacingCount(5);
carRacingInformation.minusCarRacingCount();
assertEquals(4,carRacingInformation.getCarRacingCount());
}
}