From c8c63a47e68a28451ed312749c2c29dba4e2bb4e Mon Sep 17 00:00:00 2001 From: koreanMike513 Date: Sat, 4 Jan 2025 21:29:12 +0000 Subject: [PATCH] refactor: Refactored test methods - refactored static entity codes to methods --- .../com/f_lab/la_planete/domain/FoodTest.java | 19 +++++--- .../f_lab/la_planete/domain/OrderTest.java | 47 +++++++++++-------- .../f_lab/la_planete/domain/VoucherTest.java | 13 +++-- 3 files changed, 49 insertions(+), 30 deletions(-) diff --git a/src/test/java/com/f_lab/la_planete/domain/FoodTest.java b/src/test/java/com/f_lab/la_planete/domain/FoodTest.java index a3945c5..0b2570a 100644 --- a/src/test/java/com/f_lab/la_planete/domain/FoodTest.java +++ b/src/test/java/com/f_lab/la_planete/domain/FoodTest.java @@ -14,9 +14,9 @@ class FoodTest { @DisplayName("음식 수량을 줄였을 때 성공") void test_minus_food_quantity_success() { // given - Food food = new Food(); - food.setPrice(BigDecimal.valueOf(1000)); - food.setTotalQuantity(10); + BigDecimal price = BigDecimal.valueOf(1000); + int quantity = 10; + Food food = createFood(price, quantity); // when food.minusQuantity(5); @@ -29,12 +29,19 @@ void test_minus_food_quantity_success() { @DisplayName("음식 수량을 줄였을 때 수량보다 많아서 실패할 때 예외 던짐") void test_minus_food_quantity_fail() { // given - Food food = new Food(); - food.setPrice(BigDecimal.valueOf(1000)); - food.setTotalQuantity(10); + BigDecimal price = BigDecimal.valueOf(1000); + int quantity = 10; + Food food = createFood(price, quantity); // then assertThatThrownBy(() -> food.minusQuantity(11)) .isInstanceOf(IllegalStateException.class); } + + private Food createFood(BigDecimal price, int quantity) { + return Food.builder() + .price(price) + .totalQuantity(quantity) + .build(); + } } \ No newline at end of file diff --git a/src/test/java/com/f_lab/la_planete/domain/OrderTest.java b/src/test/java/com/f_lab/la_planete/domain/OrderTest.java index 79ee4f1..d39fbe3 100644 --- a/src/test/java/com/f_lab/la_planete/domain/OrderTest.java +++ b/src/test/java/com/f_lab/la_planete/domain/OrderTest.java @@ -25,45 +25,52 @@ class OrderTest { .totalQuantity(1000) .build(); - Voucher voucher = Voucher.builder() - .discountRate(BigDecimal.valueOf(0.45)) - .expiryDate(LocalDateTime.of(3000, Month.DECEMBER, 12, 23, 59)) - .build(); - @Test @DisplayName("할인 쿠폰이 있는 경우에 calculateTotalCost() 메서드") void test_totalCost_given_food_and_voucher_success() { // given - BigDecimal totalCost = food.calculateCost(3); - Order order = Order.builder() - .food(food) - .totalCost(totalCost) - .quantity(3) - .voucher(voucher) - .build(); + int quantity = 3; + BigDecimal totalCost = food.calculateCost(quantity); + Voucher voucher = createVoucher(); + Order order = createOrder(totalCost, quantity, voucher); // when BigDecimal calculatedTotalCost = order.calculateTotalCost(); // then - Assertions.assertThat(calculatedTotalCost).isEqualTo(BigDecimal.valueOf(16500)); + BigDecimal NUM_16500 = BigDecimal.valueOf(16500); + Assertions.assertThat(calculatedTotalCost).isEqualTo(NUM_16500); } @Test @DisplayName("할인 쿠폰이 없는 경우에 calculateTotalCost() 메서드") void test_totalCost_given_food_and_without_voucher_success() { // given - BigDecimal totalCost = food.calculateCost(3); - Order order = Order.builder() - .food(food) - .totalCost(totalCost) - .quantity(3) - .build(); + int quantity = 3; + BigDecimal totalCost = food.calculateCost(quantity); + Order order = createOrder(totalCost, quantity, null); // when BigDecimal calculatedTotalCost = order.calculateTotalCost(); // then - Assertions.assertThat(calculatedTotalCost).isEqualTo(BigDecimal.valueOf(30000)); + BigDecimal NUM_30000 = BigDecimal.valueOf(30000); + Assertions.assertThat(calculatedTotalCost).isEqualTo(NUM_30000); + } + + private Order createOrder(BigDecimal totalCost, int quantity, Voucher voucher) { + return Order.builder() + .food(food) + .totalCost(totalCost) + .quantity(quantity) + .voucher(voucher) + .build(); + } + + private Voucher createVoucher() { + return Voucher.builder() + .discountRate(BigDecimal.valueOf(0.45)) + .expiryDate(LocalDateTime.of(3000, Month.DECEMBER, 12, 23, 59)) + .build(); } } \ No newline at end of file diff --git a/src/test/java/com/f_lab/la_planete/domain/VoucherTest.java b/src/test/java/com/f_lab/la_planete/domain/VoucherTest.java index 27fef8c..1d9c601 100644 --- a/src/test/java/com/f_lab/la_planete/domain/VoucherTest.java +++ b/src/test/java/com/f_lab/la_planete/domain/VoucherTest.java @@ -28,8 +28,8 @@ class VoucherTest { @DisplayName("0 ~ 100 사이의 값이 들어올 때 정상적으로 할인이 적용된 값을 return") void test_voucher_discount_success() { // given - Voucher voucher = new Voucher(); - voucher.setDiscountRate(BigDecimal.valueOf(0.25)); + BigDecimal discountRate = BigDecimal.valueOf(0.25); + Voucher voucher = createVoucher(discountRate); // when BigDecimal afterDiscountsGBP1 = voucher.apply(BigDecimal.valueOf(100), GBP); @@ -46,13 +46,18 @@ void test_voucher_discount_success() { @DisplayName("currency 값에 null 값이 들어갔을 경우에 예외를 던진다.") void test_voucher_discount_failure() { // given - Voucher voucher = new Voucher(); - voucher.setDiscountRate(BigDecimal.valueOf(0.25)); + BigDecimal discountRate = BigDecimal.valueOf(0.25); + Voucher voucher = createVoucher(discountRate); // when assertThatThrownBy(() -> voucher.apply(BigDecimal.valueOf(100), null) ).isInstanceOf(IllegalStateException.class); + } + private Voucher createVoucher(BigDecimal discountRate) { + return Voucher.builder() + .discountRate(discountRate) + .build(); } } \ No newline at end of file