// 사용 예
public class HelloResponseDtoTest {
// 테스트절차: given-when-then 순서
@Test
public void lombokFunctionTest() {
//given
String name = "test";
int amount = 1000;
//when
HelloResponseDto dto = new HelloResponseDto(name, amount);
//then
assertThat(dto.getName()).isEqualTo(name);
assertThat(dto.getAmount()).isEqualTo(amount);
}
// 에러 발생 테스트
@Test
public void searchById_ThrowsException() {
given(this.todoRepository.findById(anyLong())).willReturn(Optional.empty());
* 쿠폰 `유효기간 검증`
* 쿠폰이름 `한글 포함한지 검증`
* 👍 Exception 처리를 하셨다면
* 쿠폰이름이 null인지 StringUtils 객체 사용하여 `Throw Exception 에러 발생 시나리오 검증 테스트` 만들기
<br>
<br>
2. 객체지향 방식으로 `OrderDish` 프로그램 설계하기(Java파일로 만들어주세요!)
**[문제 : 각 고객(Client), 메뉴판(Menu), 요리사(Shef), 요리(Dish) 객체를 통해 요리를 주문하는 클래스를 설계 및 구현 하십시오.]**
* 각 객체별 기능 요구사항
- 고객은 요리사에게 요리를 주문 할 수 있습니다.
- 고객은 주문 시 메뉴판을 이용하여 주문 해야 합니다.
- 요리사는 고객에게 전달 받은 메뉴판을 통해 조리를 할 수 있습니다.
- 조리 이후 요리사는 조리 된 요리를 고객에게 전달 합니다.
* 구현 시 특이사항
- 각 클래스간 `OOP 지향` 및 `SOLID 원칙`이 반영 될 수 있도록 설계를 진행해주세요. (** 상기 명시 된 4개의 클래스 외 설계를 함에 있어 추가적인 클래스 생성이 가능합니다.)
- main 함수는 (public static void main(String[] args)) Client 객체에 선언 되어 있으며, 주문 시 요리 선택은 Client 객체에서 정의 해주세요.
- 메뉴판 내에는 각 `요리명`, `음식분류`, `먹는 방식` 등이 명시 되어 있습니다. (ex : 갈비찜/한식/젓가락, 파스타/양식/포크, 마파두부/중식/숟가락)
- 주방장은 음식분류에 따라 조리가 가능한 각각의 요리사가 존재 하며, 더 늘어날 수 도 있습니다. (ex : 한식요리사, 양식요리사, 중식요리사)
- 고객이 요리를 전달 받고 메시지를 출력 할 때 주문한 음식 이름과 먹는 방법도 함께 출력해주세요
* 출력 되는 메시지 (예시)
JUnit Test 내
assertThat
사용 검증하기// assertThrows(ResponseStatusException.class, () -> { // this.todoService.searchById(1L); // }); assertThatThrownBy(() -> { todoService.searchById(1L); }).isInstanceOf(ResponseStatusException.class); // Exception 발생 } }
고객은 갈비찜을 주문하였습니다. 한식 요리사는 갈비찜 주문을 받았습니다. 한식 요리사는 갈비찜을 만들었습니다. 고객은 주문한 갈비찜을 받았으며, 젓가락을 먹었습니다.