π μ€λ μ½μ λ²μ: 9μ₯ λλ¨Έμ§ μ λ°(p.161~169), κ·Έλ¦¬κ³ Quiz
λλ©μΈμ νΉνλ μΈμ΄(DSL)
νν μ°λ μμ€ν μ‘°μ APIλ₯Ό μ¬μ©νλ λμ API μμλ€ ν¨μμ μ νΈλ¦¬ν°λ₯Ό ꡬνν ν κ·Έ ν¨μμ μ νΈλ¦¬ν°λ₯Ό μ¬μ©νλ―λ‘ ν μ€νΈ μ½λλ₯Ό μ§κΈ°λ μ½κΈ°λ μ¬μμ§λ€.
κ°μΈμ μΌλ‘ κ°μ₯ μ΄ν΄κ° μκ°λ ννΈμλ€. μμ§λ ν μ€νΈ μ½λλ₯Ό 지 λ ν μ€νΈ API λ₯Ό ꡬνν΄ DSL μ λ§λ€λΌλ κ±°μλλ°, μ΄ DSL μ΄λ κ°λ μ΄ μ μ΄ν΄κ° μκ°λ€.
μ΄μ€ νμ€
ν μ€νΈ API μ½λμ μ μ©νλ νμ€μ μ€μ μ½λμ μ μ©νλ νμ€κ³Ό νμ€ν λ€λ₯΄λ€. λ¨μνκ³ , κ°κ²°νκ³ , ννλ ₯μ΄ νλΆν΄μΌ νμ§λ§, μ€μ μ½λλ§νΌ ν¨μ¨μ μΌ νμλ μλ€.
ν μ€νΈ λΉ assert νλ & ν μ€νΈ λΉ κ°λ νλ
- ν μ€νΈ μ½λλ₯Ό 지 λλ ν¨μλ§λ assert λ¬Έμ λ¨ νλλ§ μ¬μ©ν΄μΌ νλ€κ³ μ£Όμ₯νλ ννκ° μλ€.
- μ΄μ©λ©΄ "ν μ€νΈ ν¨μλ§λ€ ν κ°λ λ§ ν μ€νΈ νλΌ" λ κ·μΉμ΄ λ λ«κ² λ€.
- "κ°λ λΉ assertλ¬Έ μλ₯Ό μ΅μλ‘ μ€μ¬λΌ" μ "ν μ€νΈ ν¨μ νλλ κ°λ νλλ§ ν μ€νΈνλΌ"λΌ νκ² λ€.
F.I.R.S.T
κΉ¨λν ν μ€νΈλ λ€μ λ€μ― κ°μ§ κ·μΉμ λ°λ₯΄λλ°,
- Fast: ν μ€νΈλ λΉ¨λΌμΌ νλ€.
- Independent: κ° ν μ€νΈλ μλ‘ μμ‘΄νλ©΄ μλλ€.
- Repeatable: ν μ€νΈλ μ΄λ€ νκ²½μμλ λ°λ³΅ κ°λ₯ν΄μΌ νλ€. μ€μ νκ²½, QA νκ²½, λ²μ€λ₯Ό νκ³ μ§μΌλ‘ κ°λ κΈΈμ μ¬μ©νλ (λ€νΈμν¬μ μ°κ²°λμ§ μμ) λ ΈνΈλΆ νκ²½μμλ μ€νν μ μμ΄μΌ νλ€.
- Self-Validating: ν μ€νΈλ λΆμΈ(bool)κ°μΌλ‘ κ²°κ³Όλ₯Ό λ΄μΌ νλ€. μ±κ³΅ μλλ©΄ μ€ν¨λ€.
- Timely: ν μ€νΈλ μ μμ μμ±ν΄μΌ νλ€. λ¨μ ν μ€νΈλ ν μ€νΈνλ €λ μ€μ μ½λλ₯Ό ꡬννκΈ° μ§μ μ ꡬννλ€.
ν μ€νΈ API, DSL μ λν κ°λ μ΄ ν·κ°λ¦° μ₯μ΄μλ€. κ·Έλλ ν μ€νΈ μ½λμ λν μ λ°μ μΈ κ°λ μ λ€λ£° μ μμλ€λ μ μμ μμλ₯Ό λλ€.
DSL(λλ©μΈμ νΉνλ μΈμ΄): You can think of DSLs as complex arguments for functions written in a more general programming language.
XML: a more flexible cousin of HTML.
(Java) void: It is a keyword and used to specify that a method doesn't return anything.