
1. Day 17, 18
π μ€λ μ½μ λ²μ : 9μ₯ λ¨μ ν μ€νΈ(p.153 ~ p.170)
1.1. π μ± μμ κΈ°μ΅νκ³ μΆμ λ΄μ©
- TDD λ²μΉ μΈ κ°μ§(p.155)
- 첫째 λ²μΉ: μ€ν¨νλ λ¨μ ν μ€νΈλ₯Ό μμ±ν λκΉμ§ μ€μ μ½λλ₯Ό μμ±νμ§ μλλ€.
- λμ§Έ λ²μΉ: μ»΄νμΌμ μ€ν¨νμ§ μμΌλ©΄μ μ€νμ΄ μ€ν¨νλ μ λλ‘λ§ λ¨μ ν μ€νΈλ₯Ό μμ±νλ€.
- μ μ§Έ λ²μΉ: νμ¬ μ€ν¨νλ ν μ€νΈλ₯Ό ν΅κ³Όν μ λλ‘λ§ μ€μ μ½λλ₯Ό μμ±νλ€.
- ν μ€νΈ μ½λκ° λ³΅μ‘ν μλ‘ μ€μ μ½λλ₯Ό μ§λ μκ°λ³΄λ€ ν μ€νΈ μΌμ΄μ€λ₯Ό μΆκ°νλ μκ°μ΄ λ 걸리기 μμμ΄λ€. μ€μ μ½λλ₯Ό λ³κ²½ν΄ κΈ°μ‘΄ ν μ€νΈ μΌμ΄μ€κ° μ€ν¨νκΈ° μμνλ©΄, μ§μ λΆν μ½λλ‘ μΈν΄, μ€ν¨νλ ν μ€νΈ μΌμ΄μ€λ₯Ό μ μ ν΅κ³Όμν€κΈ° μ΄λ €μμ§λ€.(p.156)
- ν μ€νΈ μ½λλ μ€μ μ½λ λͺ»μ§μκ² μ€μνλ€.(p.157)
- μ½λμ μ μ°μ±, μ μ§λ³΄μμ±, μ¬μ¬μ©μ±μ μ 곡νλ λ²νλͺ©μ΄ λ°λ‘ λ¨μ ν μ€νΈλ€. μ΄μ λ λ¨μνλ€. ν μ€νΈ μΌμ΄μ€κ° μμΌλ©΄ λ³κ²½μ΄ λλ ΅μ§ μμΌλκΉ!(p.157)
- ν μ€νΈ μΌμ΄μ€κ° μλ€λ©΄ λͺ¨λ λ³κ²½μ΄ μ μ μ μΈ λ²κ·Έλ€.(p.157)
- ν μ€νΈ μ½λκ° μ§μ λΆν μλ‘ μ€μ μ½λλ μ§μ λΆν΄μ§λ€. κ²°κ΅ ν μ€νΈ μ½λλ₯Ό μμ΄λ²λ¦¬κ³ μ€μ μ½λλ λ§κ°μ§λ€.(p.157)
- λμ²΄λ‘ λλ λ¨μΌ assertλ₯Ό μ§μνλ ν΄λΉ λΆμΌ ν μ€νΈ μΈμ΄λ₯Ό λ§λ€λ € λ Έλ ₯νλ€. νμ§λ§ λλ‘λ μ£Όμ μμ΄ ν¨μ νλμ μ¬λ¬ assert λ¬Έμ λ£κΈ°λ νλ€. λ¨μ§ assert λ¬Έ κ°μλ μ΅λν μ€μ¬μΌ μ’λ€λ μκ°μ΄λ€.(p.165)
- κ°μ₯ μ’μ κ·μΉμ "κ°λ λΉ assert λ¬Έ μλ₯Ό μ΅μλ‘ μ€μ¬λΌ"μ "ν μ€νΈ ν¨μ νλλ κ°λ νλλ§ ν μ€νΈνλΌ"λΌ νκ² λ€.(p.167)
- κΉ¨λν ν
μ€νΈλ λ€μ λ€μ― κ°μ§ κ·μΉμ λ°λ₯΄λλ°, κ° κ·μΉμμ 첫 κΈμλ₯Ό λ°μ€λ©΄ FIRSTκ° λλ€.(p.167 ~ p.168)
- λΉ λ₯΄κ²(Fast): ν μ€νΈλ λΉ¨λΌμΌ νλ€.
- λ 립μ μΌλ‘:(Independent): κ° ν μ€νΈλ μλ‘ μμ‘΄νλ©΄ μ λλ€.
- λ°λ³΅ κ°λ₯νκ²(Repeatable): ν μ€νΈλ μ΄λ€ νκ²½μμλ λ°λ³΅ κ°λ₯ν΄μΌ νλ€.
- μκ° κ²μ¦νλ(Self-Validating): ν μ€νΈλ λΆμΈ κ°μΌλ‘ κ²°κ³Όλ₯Ό λ΄μΌ νλ€.
- μ μμ(Timely): λ¨μ ν μ€νΈλ ν μ€νΈνλ €λ μ€μ μ½λλ₯Ό ꡬννκΈ° μ§μ μ ꡬνλ€.
- ν μ€νΈ μ½λκ° λ°©μΉλμ΄ λ§κ°μ§λ©΄ μ€μ μ½λλ λ§κ°μ§λ€. ν μ€νΈ μ½λλ₯Ό κΉ¨λνκ² μ μ§νμ.(p.168)
1.2. π€ μ€λ μ½μ μκ°κ³Ό λ μ€λ₯΄λ μκ°
μ΄ λΆλΆμ μ½κΈ° μ κΉμ§ TDDλΌλ λ§λ§ λ€μ΄λ³΄κ³ μ€μ λ‘ TDDκ° λ¬΄μμΈμ§ μ ν΄μΌ νλμ§ λͺ¨λ₯΄κ³ μμλ€.
μ§μ λ¨μ ν μ€νΈλ₯Ό ν΄λ³Έ μ μ΄ μμ΄μ μ½λ μμ λ₯Ό λ΄€μ λ μ΄λ€ μμΌλ‘ μ½λκ° λμκ°λ κ±΄μ§ μλ²½νκ² μ΄ν΄νμ§λ λͺ»νμ§λ§, ν μ€νΈ μ½λλ₯Ό μμ±νκ² λλ©΄ μ°λ¦¬κ° ꡬνν κΈ°λ₯μ λͺ ννκ² μ μ μμλΏλλ¬ μ μ§λ³΄μκΉμ§ μλ²½νκ² ν΄λΌ μ μλ€λ κ±Έ μκ² λμκ³ κ±°μ νμλΌκ³ μκ°μ΄ λμλ€.
λ€μ νλ‘μ νΈλ₯Ό ν λλ μ΄ μ± μ κ·μΉλ€μ μ μ©ν΄μ ν μ€νΈ μ½λλ νλ² κΌ μμ±ν΄ λ³΄κ³ μΆλ€.
κ·Έλ¦¬κ³ ν μ€νΈ μ½λλ₯Ό μμ±νλ μ΅κ΄μ λ€μ¬μ ν μ€νΈ μ½λ μμ΄λ κ°λ°μ ν μ μμ μ λλ‘ μ μνκ³ μΆκ³ μ μν κ²μ΄λ€.
1.3. π κΆκΈν λ΄μ©μ΄ μκ±°λ, μ μ΄ν΄λμ§ μλ λ΄μ©
x
1.3.1. μκ° 3μ€ μμ½
- ν μ€νΈ μ½λλ μ€μ μ½λ λͺ»μ§μκ² μ€μνλ€.
- ν μ€νΈ μΌμ΄μ€κ° μλ€λ©΄ λͺ¨λ λ³κ²½μ΄ μ μ μ μΈ λ²κ·Έλ€.
- κΉ¨λν ν μ€νΈ μ½λλ FIRST κ·μΉμ λ°λ₯Έλ€.