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);
});