js_간단_리팩토링 & 테스트코드 예제

dev.dave·2023년 7월 24일

Javascript

목록 보기
23/167

HTML>>>
<바디>
<스크립트>
//데이터 부분
const coffeeMakingMap = {
americano: () => "물" + "," + "커피원두",
cappuccino: () => "우유" + "," + "커피원두",
};

  //비즈니스 로직//분기코드 (if문)방법
  // function makeCoffee(orderCount, orderMenu) {
  //   const result = [];
  //   for (let i = 0; i < orderCount; i++) {
  //     if (orderMenu === "cappuccino") {
  //       result.push(coffeeMakingMap[orderMenu]());
  //     } else if (orderMenu === "americano") {
  //       result.push(coffeeMakingMap[orderMenu]());
  //     }
  //   }
  //   return result;
  // }
  // makeCoffee("cappuccino", 3);

  //비즈니스 로직//객체 리터럴 방법
  // function makeCoffee(orderCount, orderMenu) {
  //   const result = [];
  //   for (let i = 0; i < orderCount; i++) {
  //     result.push(coffeeMakingMap[orderMenu]);
  //   }
  //   return result;
  // }

  //비즈니스 로직//객체 리터럴 방법//리팩토링 // 디스트럭쳐링 destructuring 구조분해할당 문법 = 객체에서 뽑아내는 방법
  function makeCoffee({ orderCount, orderMenu }) {
    const result = [];
    for (let i = 0; i < orderCount; i++) {
      result.push(coffeeMakingMap[orderMenu]());
    }
    return result;
  }

  //실행
  console.log(makeCoffee("americano", 3));
</script>

</바디>

==============================================

JS >

const coffeeMakingMap = {
americano: () => "물" + "," + "커피원두",
cappuccino: () => "우유" + "," + "커피원두",
};
//console.log(coffeeMakingMap["americano"]);

export function makeCoffee({ orderMenu, orderCount }) {
const result = [];
for (let i = 0; i < orderCount; i++) {
result.push(coffeeMakingMaporderMenu); // coffeeMakingMap 객체 매서드가 함수이므로 함수실행을 위해 ()를 붙여줌
}
return result;
}

console.log(makeCoffee("americano", 3));

=============================================

테스트코드>

import test from "node:test";
import assert from "node:assert";

import { makeCoffee } from "./main";

test("makeCoffee 커피를 잘 만드는지 확인", () => {
//given
const orderCount = 3;
const orderMenu = "americano";

//when
//const result = makeCoffee(orderMenu, orderCount);
const result = makeCoffee({
orderMenu,
orderCount,
});

//then
const expected = [
"물" + "," + "커피원두",
"물" + "," + "커피원두",
"물" + "," + "커피원두",
];
assert.deepEqual(expected, result);
});

profile
🔥개인 메모 / 다른블로그 자료 참조 / 다른블로그 자료 퍼옴 (출처표기) /여기저기서 공부 했던 내용 개인메모 & 참고 / 개인 기록 용도 블로그 입니다.🔥

0개의 댓글