9.1 TDD λ²μΉ μΈ κ°μ§
- TDD λ²μΉ μΈκ°μ§λ 첫 λ²μ§Έ λ²μΉ: μ€ν¨νλ λ¨μ ν μ€νΈλ₯Ό μμ±ν λκΉμ§ μ€μ μ½λλ₯Ό μμ±νμ§ μλλ€. λ λ²μ§Έ λ²μΉ: μ»΄νμΌμ μ€ν¨νμ§ μμΌλ©΄μ μ€νμ΄ μ€ν¨νλ μ λλ‘λ§ λ¨μ ν μ€νΈλ₯Ό μμ±νλ€. μΈ λ²μ§Έ λ²μΉ: νμ¬ μ€ν¨νλ ν μ€νΈλ₯Ό ν΅κ³Όν μ λλ‘λ§ μ€μ μ½λλ₯Ό μμ±νλ€. μ΄λ κ² νλ©΄ μ€μ μ½λλ₯Ό μ λΆ ν μ€νΈνλ ν μ€νΈ μΌμ΄μ€κ° λμ€μ§λ§, λ°©λν ν μ€νΈ μ½λμ κ΄λ¦¬ λ¬Έμ λ₯Ό μ λ°νκΈ°λ νλ€.
9.2 ν΄λ¦° ν μ€νΈ μ½λ μ μ§νκΈ°
- ν μ€νΈ μ½λλ μ€μ μ½λ λͺ»μ§μκ² μ€μνλ€.
- ν μ€νΈλ μ½λμ μ μ°μ±, μ μ§λ³΄μμ±, μ¬μ¬μ©μ± λ± -μ±μ μ 곡νλ€.
9.3 ν΄λ¦° ν μ€νΈ μ½λ
- ν μ€νΈ μ½λλ μ‘λ€νκ³ μΈμΈν μ¬νμ΄ λ§μΌλ©΄ μλλ€. κ°κ²°νκ³ ννλ ₯μ΄ νλΆν μ½λλ‘ λ¦¬ν©ν λ§ νμ! ν μ€νΈ μ½λκ° ν¨μ¨μ μΌ νμλ μλ€. νμ§λ§ μ½λμ κΉ¨λν¨μ μ€μνλ€.
9.4 ν μ€νΈ λΉ assert νλ
- assertλ¬Έμ΄ μ¬λ¬κ° λ€μ΄κ° μλ μλ€. νμ§λ§ μ΅λν μ€μ΄λ κ²μ΄ μ’λ€. λν ν μ€νΈ ν¨μ νλλ κ°λ νλλ§ ν μ€νΈν΄μΌνλ€.
9.5 F.I.R.S.T
- ν΄λ¦° ν μ€νΈμ λ€μ― κ°μ§ κ·μΉ
- λΉ λ₯΄κ²(Fast) : ν μ€νΈλ λΉ¨λΌμΌ νλ€.(9.3μ μ΄μ€ νμ€κ³Ό μμΆ©λμ§ μλ?)
- λ 립μ μΌλ‘(Independent) : ν μ€νΈλ μλ‘ μμ‘΄νλ©΄ μλλ€.
- λ°λ³΅ κ°λ₯νκ²(Repeatable) : ν μ€νΈλ μ΄λ€ νκ²½μμλ λ°λ³΅μ΄ κ°λ₯ν΄μΌ νλ€.
- μκ° κ²μ¦νλ(Self-Validating) : ν μ€νΈλ boolκ°μΌλ‘ κ²°κ³Όλ₯Ό λ΄μΌ νλ€.
- μ μμ(Timely) : ν μ€νΈ μ½λλ μ€μ μ½λλ₯Ό ꡬννκΈ° μ§μ μ ꡬννλ€.
9.6 κ²°λ‘
- ν μ€νΈ μ½λλ μ΄μ©λ©΄ μ€μ μ½λλ³΄λ€ λ μ€μν μ§ λͺ¨λ₯Έλ€. ν μ€νΈ μ½λλ₯Ό κΉ¨λνκ² μ μ§νμ!