Reference : Clean Code By. Robert C. Martin
TDD : Test Driven Development
TDDλ Test Codeλ₯Ό λ¨Όμ μμ±νκ³ κ·Έ μ΄νμ ν΄λΉ ν μ€νΈλ₯Ό λ§μ‘±μν€λ μ€μ μ½λλ₯Ό μμ±ν΄λκ°λ κ°λ° λ°©λ²μ€ νλλ€.
κΉ¨λν μ½λλ ν
μ€νΈ μ½λ μ‘°μ°¨ κΉ¨λν΄μΌ νλ€.
μ΄λ₯Ό λ¬μ±νκΈ° μν΄ F.I.R.S.T λ£°μ΄ μ μ©λλ€.
μλλ λΉ λ₯΄κ²
ν
μ€νΈ μ½λλ νλ² μμ±ν ν νλ² λλ €λ΄μΌλ‘μ¨ λλμ§ μλλ€.
μ μ§λ³΄μλ₯Ό νλ©° μ½λλ₯Ό κ°μ ν΄ λκ°λ μ§μμ μΌλ‘ ν
μ€νΈ μ½λλ₯Ό λλ €λ΄μΌ νλ€.
λΉ λ₯΄κ² λμκ° μ μλ ν μ€νΈ μ½λλ₯Ό μ§μΌ νλ€.
λ
립μ±μ μ§λ
μ¬λ¬κ°μ ν
μ€νΈκ° μλ‘ μμ‘΄μ±μ μ§λλ©΄ μλλ€.
ν ν
μ€νΈλ ν κ°λ
λ§ λ΄λΉνμ¬ ν
μ€νΈ νλλ‘ μ½λλ₯Ό μ§μΌ νλ€. ν
μ€νΈ μ½λκ° λ
립μ μ΄μ§ λͺ»νκ³ μλ‘ μμ‘΄μ±μ μ§λλ€λ©΄ νΉμ λΆλΆμμ ν
μ€νΈκ° μ€ν¨νμ μ κ²°ν¨μ μ°Ύμλ΄κΈ°κ° μ΄λ €μμ§λ€.
λ 립μ±μ μ§λ ν μ€νΈ μ½λλ₯Ό μ§μΌ νλ€.
λ°λ³΅ κ°λ₯ν
νκ²½μ μν₯ λ°μ§ μλ ν
μ€νΈ μ½λλ₯Ό λ§λ€μ΄μΌ νλ€.
ν
μ€ν°κ°(ν
μ€νΈ μ½λλ₯Ό λλ €λ³΄λ) μΈν°λ·μ΄ μ°κ²°κ°λ₯ν μν©μ μλ μλλ, QA νκ²½μ΄λ μ€μ νκ²½μ΄λ κ°μ ν
μ€νΈ κ°λ₯νλλ‘ λ§λ€μ΄μΌ νλ€.
νκ²½μ ꡬμ λ°μ§ μκ³ λ°λ³΅ κ°λ₯ν μ½λλ₯Ό μ§μΌ νλ€.
μ체 κ²μ¦ κ°λ₯ν
ν
μ€νΈμ κ²°κ³Όκ°μ μ±κ³΅(Pass) νΉμ μ€ν¨(Fail) λ κ°μ§ μν©λ§ μ‘΄μ¬ν΄μΌ νλ€.
Pass/Fail μ΄λΌλ boolean κ²°κ³Ό κ°μ 리ν΄νλλ‘ ν
μ€νΈ μ½λλ₯Ό μμ±ν΄μΌ νλ€. νλμ μ€ν¨μΈμ§ μ±κ³΅μΈμ§ μ μ μλλ‘ ν΄μΌνλ©° ν΅κ³Ό μ¬λΆλ₯Ό κ°λ €λ΄κΈ° μν΄ λ‘κ·Έ νμΌμ μ½κ² ν΄μλ μ λλ€.
ν μ€νΈ μ½λμ κ²°κ³Όκ°μ μ±κ³΅ μλλ©΄ μ€ν¨κ° λλλ‘ μ§μΌ νλ€.
μ μμ
TDD μμμ ν
μ€νΈ μ½λλ μ€μ μ½λλ₯Ό ꡬννκΈ° μ μ λ¨Όμ μ§κ² λλ€.
μ€μ μ½λ ꡬνλ νμ ν
μ€νΈ μ½λλ₯Ό μ§κ² λ μ μ΄λ €μμ λλΌλ κ²½μ°κ° λ§λ€. λ¨Όμ ν
μ€νΈ μ½λλ₯Ό μμ±νκ³ μ΄λ₯Ό λ§μ‘±μν€λ μ€μ μ½λλ₯Ό ꡬνν΄ λκ°λ€.
ν μ€νΈ μ½λλ μ μμ μ§μΌ νλ€.
Red, Green, Refactor μ΄λΌλ μΈ λ¨κ³ μΈμ΄ν΄λ‘ TDDκ° μ§νλλ€.
