1. κ°μ
22λ 11μ 16μΌ 15μμ 4μ£Ό μ°¨ λ―Έμ μλ΄ μ΄λ©μΌμ΄ λμ°©νλ€. μΌμ£ΌμΌ λμ μ΄λ£¨μ΄μ§ μ°μνν ν¬μ½μ€ ν리μ½μ€ 4μ£Ό μ°¨ λ€λ¦¬ 건λκΈ° λ―Έμ μ λν κ°λ¨ν μκ°μ μκ°μ μμ±νλ€.
2. λ―Έμ μκ°
ν리μ½μ€ 4μ£Ό μ°¨μ λ―Έμ μ λ€λ¦¬ 건λκΈ° κ²μμ λ§λλ κ²μ΄μλ€. μ€μ§μ΄ κ²μμ μ§κ²λ€λ¦¬ 건λκΈ° κ²μκ³Ό κ°μ κ·μΉμ κ²μμ μ§μ λ§λλ κ²μ΄λ€.
μ€μ§μ΄ κ²μκ³Ό λ€λ₯Έ μ μ λͺ©μ¨μ΄ 무νκ°μ¬μ μ€ν¨λ₯Ό ν΄λ λ€μ μλν μ μλ μ μ΄ κ²μμ μ§ννλλ° λΆλ΄κ°μ μ€μ¬μ£Όμλ€.
μ€μ§μ΄ κ²μμμμ μ§κ²λ€λ¦¬ 건λκΈ° κ²μκ³Ό λ€λ₯Έ μ μ μ€ν¨λ₯Ό ν΄λ λ€μ μλν μ μλ€λ κ²μ΄λ€. μ€μ§μ΄ κ²μμμλ λ°λ‘ μΆλ½νμ¬ μ¬λ§μ νμ§λ§ λ€νν ν리μ½μ€μ λ€λ¦¬ 건λκΈ° λ―Έμ μ κ·Έλ¬μ§ μμλ€. κ·Έλμ κ²μμ μ€ν¨νλλΌλ 무νν λμ μ νλ©° μ΄μ΄λκ° μ μμλ€.
μ΄λ² λ―Έμ μλ μλ‘κ² μΆκ°λ μꡬ μ¬νμ΄ μμλ€.
- ν¨μ(λλ λ©μλ)μ κΈΈμ΄κ° 10λΌμΈμ λμ΄κ°μ§ μλλ‘ κ΅¬ννλ€.
- ν¨μ(λλ λ©μλ)κ° ν κ°μ§ μΌλ§ μνλλ‘ κ΅¬ννλ€.
- λ©μλμ νλΌλ―Έν° κ°μλ μ΅λ 3κ°κΉμ§λ§ νμ©νλ€.
λμ± μμΈν λ΄μ©μ μλμ λ―Έμ μ μ₯μλ₯Ό μ°Έκ³ νλ©΄ λλ€.
μ°μν ν ν¬μ½μ€ 4μ£Όμ°¨ λ€λ¦¬ 건λκΈ° λ―Έμ μ μ₯μ
3. jest.fn(), jest.spyOn()
3μ£Ό μ°¨ λ―Έμ
μμμ μμ¬μ΄ μ μ΄ μλ€λ©΄, μΆλ ₯μ κ΄ν ν
μ€νΈ μ½λλ₯Ό μμ±νμ§ μμλ€λ κ²μ΄λ€. ApplicationTest
νμΌμ μ°Έκ³ νμ¬ jest.fn()
κ³Ό jest.spyOn()
λ©μλ μ¬μ©μ λν΄ κ³ λ―Όμ νμκ³ , 곡μλ¬Έμμ κΈ°μ λΈλ‘κ·Έλ₯Ό 보며 νμ΅μ μ§ννμλ€.
μ΄μ λν΄ μ 리ν λ΄μ©μ μλμ λ§ν¬λ₯Ό λ¨κΈ΄λ€.
λͺ¨μ ν¨μ(Mock Functions) μ¬μ©νκΈ°
ν¨μμ νΈμΆ ν
μ€νΈνκΈ° with jest.spyOn()
ν΄λΉ νμ΅μ ν΅ν΄ mock
ν¨μλ₯Ό λ§λλ λ°©λ²μ μκ² λμκ³ μΆλ ₯μ κ΄ν ν
μ€νΈ μ½λλ₯Ό μμ±ν μ μμμ λΏ μλλΌ ν¨μ νΈμΆμ λν ν
μ€νΈλ ν¨κ» μ§νν μ μμλ€.
Jest
λ₯Ό νμ©ν ν
μ€νΈ μ½λλ μ°ν
μ½ ν리μ½μ€μμ μ²μ μ νλ€. κ·Έλ κΈ° λλ¬Έμ κΈ°λ₯ ꡬνμ μμ μκ° λͺ»μ§ μκ² Jest
λ₯Ό νμ΅νλλ° λ§μ μκ°μ ν¬μνμλ€.
4. κ°μ²΄(λλ ν΄λμ€)μ μ¬μ©μ λν΄ κ³ λ―Ό
3μ£Ό μ°¨ λ―Έμ μ λν κ³΅ν΅ νΌλλ°±μλ κ°μ²΄(λλ ν΄λμ€)μ λν λ΄μ©μ΄ μμλ€. μ΄λ₯Ό λ°νμΌλ‘ μ΄λ»κ² κ°μ²΄(λλ ν΄λμ€)λ₯Ό μ¬μ©ν μ§μ λν΄ κ³ λ―Όνμλ€.
κ³΅ν΅ νΌλλ°±μλ μλμ κ°μ λͺ©λ‘μ΄ μμλ€.
- κ°μ²΄μ μν μ κ·Όμ μ ννλ€
- κ°μ²΄λ κ°μ²΄μ€λ½κ² μ¬μ©νλ€
- νλμ μλ₯Ό μ€μ΄κΈ° μν΄ λ Έλ ₯νλ€
ν΄λμ€μ λν΄ λ§μ΄ μ¬μ©μ νμ§ μμκΈ° λλ¬Έμ νΌλλ°±μ λ΄μ©λ§ λ΄μλ μ΄λ€ μλ―ΈμΈμ§ κ°μ΄ μ‘νμ§ μμλ€. κ·Έλμ μΌλ¨ νΌλλ°±μ λ΄μ©μ κΌΌκΌΌν μ½μ΄λ³΄κ³ μλν λ°κ° 무μμΈμ§ κΉ¨λ«κΈ° μν΄ λ Έλ ₯νμλ€. λν κ°μ²΄(λλ ν΄λμ€)λ₯Ό μ¬λ°λ₯΄κ² μ¬μ©νκΈ° μν΄ μ¬λ¬ λΈλ‘κ·Έμ κΈμ μ°Ύμ μ½μ΄λ³΄μλ€.
λꡬλ κ³ κ°λ₯Ό λλμ΄λ κ²°λ‘ μ λ΄λ¦΄μλ μμμ§λ§ λλ¦ μ μν κ°μ²΄(λλ ν΄λμ€)λ₯Ό μ¬μ©νλ λ°©λ²μ μλμ κ°λ€.
κ°μ²΄λ₯Ό μ‘΄μ€νμ.
κ°μ²΄μ μν μ κ·Όμ μ νν¨μΌλ‘μ¨ κ°μ²΄μ μμ¨μ±μ μ‘΄μ€ν μ μκ³ κ°μ²΄κ° ν΄μΌ ν μΌμ λ€λ₯Έ κ³³μμ λμ νλ κ²μ κ°μ²΄(λλ ν΄λμ€)λ₯Ό μ‘΄μ€νμ§ μλ κ²κ³Ό λ€λ¦μ΄ μλ€λ μκ°μ΄ λ€μλ€. λ§μΉ κ°μ²΄κ° μ΄μμλ μλͺ μ²΄λ‘ μκ°λλ μκ°μ΄μλ€.
μ΄μ λν λμ± μμΈν λ΄μ©μ μλμ λ§ν¬μμ νμΈν μ μλ€.
ν΄λμ€ μ¬μ©μ λν κ³ μ°°
5. μμμ μΈ μ°μ΅
4μ£Ό μ°¨ λ―Έμ μλ 'ν¨μ(λλ λ©μλ)μ κΈΈμ΄κ° 10λΌμΈμ λμ΄κ°μ§ μλλ‘ κ΅¬ννλ€.'λΌλ μꡬ μ¬νμ΄ μλ€. μ΄λ₯Ό μ§ν€κΈ° μν΄ λ§μ κ³ λ―Όμ νμλ€. μ΅λν ν¨μκ° νλμ μΌλ§ νλλ‘ μͺΌκ°μ΄ ν¨μ(λλ λ©μλ)μ κΈΈμ΄λ₯Ό μ€μ΄κ³ μ νμλ€.
3μ£Ό μ°¨ λ―Έμ μμλ 리ν©ν°λ§μ ν ν ν μ€νΈ μ½λλ₯Ό μμ±νμλλ° 4μ£Ό μ°¨ λ―Έμ μμλ λ°λλ‘ μ§ννμλ€. κ·Έ μ΄μ λ νλμ ν¨μ(λλ λ©μλ)μμ μμ±ν μ μλ λͺ¨λ ν μ€νΈ μ½λλ₯Ό κ³ λ―Όν¨μΌλ‘μ¨ ν΄λΉ ν¨μ(λλ λ©μλ)κ° λ΄λΉνλ μν μ μͺΌκ°€ μ μκΈ° λλ¬Έμ΄λ€.
μλ₯Ό λ€μ΄ μλμ ν¨μλ₯Ό μ΄ν΄λ³΄μ.
const sum = (a, b) => {
if (a > 10 || b > 10) throw new Error('10λ³΄λ€ μμ μ«μλ₯Ό μ
λ ₯νμΈμ.');
return a + b;
};
sum
ν¨μλ λ κ°μ μλ₯Ό μΈμλ‘ λ°μ μμ λ²μλ₯Ό νμΈν λ€ ν©μ λ°ννλ μν μ νλ€. sum
ν¨μμμ μμ±ν μ μλ ν
μ€νΈλ ν¬κ² λ κ°λ‘ λλ μ μλ€.
- a, bμ λ²μ ν μ€νΈ
- ν©μ λ°ννλ ν μ€νΈ
μ΄λ₯Ό ν΅ν΄ sum
ν¨μλ 2κ°μ§μ μΌμ νκ³ μλ€λ κ²μ μ μ μλ€. κ·Έλ λ€λ©΄ ν
μ€νΈλ₯Ό ν λλ‘ sum
ν¨μκ° ν κ°μ§μ μΌλ§ ν μ μλλ‘ μͺΌκ°μ΄ 보μ.
const sum = (a, b) => {
[a, b].forEach((number) => validateRange(number));
return a + b;
};
const validateRange = (number) => {
if (number > 10) throw new Error('10λ³΄λ€ μμ μ«μλ₯Ό μ
λ ₯νμΈμ.');
};
μ«μμ λ²μμ λν κ²μ¬λ validateRange
ν¨μμμ ν¨μΌλ‘μ¨ ν¨μκ° ν κ°μ§μ μΌλ§ ν μ μλλ‘ μ½λλ₯Ό 리ν©ν°λ§μ νμλ€.
μμλ‘ λ€μλ λ°©λ²μ λ°νμΌλ‘ λ―Έμ μ μ§ννμλ€. λ¬Όλ‘ μλ²½νκ² μͺΌκ°μλ€κ³ λ μκ°μ νμ§ μμ§λ§ μ΅λν μμμ μΌλ‘ μκ°νλ©° κ³ λ―Όμ νμλ€. λν μ΅μ’ μ μΆ μ κΉμ§ λΆμ‘±ν λΆλΆμ΄ μλμ§ κ³μ μ½λλ₯Ό νμΈνκ³ λμ± μκ² λΆλ¦¬ν μ μλ ν¨μ(λ©μλ)λ₯Ό μ°ΎκΈ° μν΄ λ Έλ ₯νμλ€.
6. Conclusion
4μ£Όκ°μ ν리μ½μ€κ° λμ΄λ¬λ€. μ§λ 4μ£Ό λμ 10λ μ κ³ λ±νκ΅ μμ μ΄ λ μ¬λλ€. 곡λΆλ₯Ό νλ€ μ‘ΈκΈ°λ νκ³ νΌκ³€νλ©΄ μ± μμμ λμ λΆμ΄κ³€ νλ λμ λͺ¨μ΅μ΄ ν리μ½μ€λ₯Ό μ§μνλ©΄μ λ€μ λ³Ό μ μμλ€. ν¨μ¨μ μΈ νμ΅ λ°©λ²μ μλ μ μμ§λ§ λͺ©νλ₯Ό μν΄ λ Έλ ₯νλ κ³Όμ μ λ€μ νλ² λ κ²ͺμκΈ° λλ¬Έμ μλ―Έ μλ μκ°μ΄μλ€.
μ£Όμ¬μλ λμ Έμ‘λ€. 12μ 14μΌ 1μ°¨ ν©κ²©μ λ°νκΉμ§ μ½ 3μ£Όκ°μ μκ°μ΄ λ¨μμλ€. λ§λ₯ κΈ°λ€λ¦¬λ κ²μ΄ μλλΌ μ§λ λ―Έμ μ λ€μ λμ΄μΌ 보면μ λΆμ‘±νλ λΆλΆμ 보μνκ³ μ νλ€. μ€ν°λμ μ°Έμ¬νλ©΄μ λ§μ μ¬λλ€μκ² λ°°μμ μ»κ³ λ³΄λ€ μ±μ₯νλ μκ°μ κ°μ§λλ‘ νμ.
νμ§λ§ λ¨λ¦¬λ λ§μμ κ°μΆ μκ° μλ€.... 12μ 14μΌλ§ μκ°νλ©΄ κ°μ΄μ΄ λ¨λ €μ¨λ€π«£
'π μ°μνν ν¬μ½μ€ > μ§μ κ³Όμ ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
μ°ν μ½ μ΅μ’ ν©κ²© νκΈ° (1) | 2023.04.10 |
---|---|
ν리μ½μ€ μ΅μ’ μ½λ© ν μ€νΈ - μ μ¬ λ©λ΄ μΆμ² (0) | 2023.04.10 |
ν리μ½μ€ 3μ£Ό μ°¨ - λ‘λ κ²μ λ―Έμ (0) | 2023.04.10 |
ν리μ½μ€ 2μ£Ό μ°¨ - μ«μ μΌκ΅¬ κ²μ λ―Έμ (0) | 2023.04.10 |
ν리μ½μ€ 1μ£Ό μ°¨ - μ¨λ³΄λ© (0) | 2023.04.10 |