E D R , A S I H C RSS

Tdd With Web Presentation

μ›Ή 뢀뢄쀑 ν‘œν˜„λΆ€λΆ„μ— λŒ€ν•΄ μ–΄λ–»κ²Œ TDDκ°€ μ§„ν–‰λ κΉŒ?

처음 μ½”λ“œλŠ” μ΄λŸ¬ν–ˆλ‹€.


즉, ν˜„μž¬ action μ½”λ“œμ— λ‹€ μ„žμ—¬μžˆλŠ” 것이닀.이뢀뢄을 TDD둜 μž‘μ„±ν•˜κΈ° μœ„ν•œ ν…ŒμŠ€νŠΈλŠ” λ‹€μŒκ³Ό κ°™μ•˜λ‹€.


즉, μΌμ’…μ˜ Template Method 의 ν˜•νƒœλ‘œμ„œ Testable ν•˜κΈ° νŽΈν•œ ViewPageAction 의 μ„œλΈŒν΄λž˜μŠ€λΌ λ§Œλ“€μ—ˆλ‹€. μ–΄μ°¨ν”Ό μ€‘μš”ν•œκ²ƒμ€ ν•΄λ‹Ή ν‘œν˜„ 뢀뢄이 잘 ν˜ΈμΆœλ˜λŠλƒμ΄λ€λ‘œ, 이에 λŒ€ν•΄μ„œλŠ” μ„œλΈŒν΄λž˜μŠ€λ‘œμ„œ ν…μŠ€νŠΈλΌ λΉ„κ΅ν–ˆλ‹€.

κ·ΈλŸ¬λ‹€κ°€, 졜근 ν”„λ‘œμ νŠΈ ν•˜λŠ”μ€‘μ— ModelViewPresenter λΌλŠ” κ°œλ…μ— λŒ€ν•΄ 읡히게 λ˜μ—ˆλ‹€. μ •ν™•ν•œ κ°œλ…μ— λŒ€ν•΄μ„œλŠ” 잘 μž‘μ§€λΌ λͺ»ν–ˆμ§€λ§Œ, HumbleDialogBox λΌλŠ” 아티클을 λ³΄λ‹ˆ λŒ€κ°• 감이 μ˜¨κ²ƒ κ°™μ•˜λ‹€. μ€‘μš”ν•œ 건 ν‘œν˜„λΆ€λΆ„μ— λŒ€ν•΄μ„œ κ°€λŠ₯ν•œν•œ 둜직이 남지 μ•Šμ•„μ•Ό ν•œλ‹€λŠ” 점이고, ν‘œν˜„λΆ€λΆ„μ„ μ‚¬μš©ν•˜λŠ” μͺ½ μž…μž₯μ—μ„œλ„ κ°€λŠ₯ν•œν•œ μΆ”μƒν™”λ ˆλ²¨μ΄ 높은 λ©”μ†Œλ“œλΌ μ“Έ 수 μžˆμ–΄μ•Ό ν•œλ‹€λŠ” 점이닀.

μ•”νŠΌ, ν˜„μž¬μ˜ λ‚΄ μ½”λ“œλ‘œ λ΄€μ„λ•ŒλŠ” 기쑴의 MVC 둜 봀을 λ•Œμ—λ„ View와 Controller κ°€ μ„žμ—¬μžˆλŠ” ν˜•νƒœμ˜€λ‹€. 이 뢀뢄에 λŒ€ν•΄μ„œ λ‹€μŒκ³Ό 같이 μ½”λ“œλΌ λ³€κ²½ν•΄λ³΄μ•˜λ‹€.


http://free1002.nameip.net:8080/viewcvs/viewcvs.cgi/*checkout*/pyki/viewpresenter.py?rev=1.1&content-type=text/plain
presenter 뢀뢄은 μΆ”ν›„ λ‚΄λΆ€μ μœΌλ‘œ Template 엔진을 μ‚¬μš©ν•˜λŠ” λ°©ν–₯을 생각해 λ³Ό μˆ˜λ„ μžˆμ„κ²ƒ κ°™λ‹€.

μ΄λ ‡κ²Œ 될 경우 ν…ŒμŠ€νŠΈ μ½”λ“œλŠ” λ‹€μŒκ³Ό κ°™λ‹€. μ—¬μ°¨ν•˜λ©΄ ν…ŒμŠ€νŠΈ μ½”λ“œμ—μ„œ presenter λΌ μ‚¬μš©ν•  μˆ˜λ„ μžˆμ—ˆλ‹€. (μ–΄μ°¨ν”Ό ViewPageAction 역할을 잘 ν•˜λŠλƒκ°€ μ€‘μš”ν•˜λ‹ˆκΉŒ, 거기에 λΆ™λŠ” HTML 듀이 μ–΄λ– ν•˜λƒκ°€ μ€‘μš”ν•˜μ§„ μ•Šμ„κ²ƒμ΄λ‹€.)


ν•˜μ§€λ§Œ, 이건 λ¦¬νŒ©ν† λ§ λ‹¨κ³„μ—μ„œμ˜ 이야기고, 만일 μƒˆ μ½”λ“œλΌ μž‘μ„±ν•˜λŠ” μ€‘μ˜ UI λΆ€λΆ„ presenter λΌ TDD둜 κ΅¬ν˜„ν•œλ‹€λ©΄ μ–΄λ–»κ²Œ 될까? μ•„λ§ˆ μ € MockViewPresenter 뢀뢄이 λ¨Όμ € κ΅¬ν˜„λ˜κ³ , 이 μΈν„°νŽ˜μ΄μŠ€λΌ κ·Όκ±°λ‘œ ViewPresenter λΌ λ§Œλ“  λ’€ HTML μ½”λ“œ 뢀뢄을 μž‘μ„±ν•˜λ©΄ 될 것 κ°™λ‹€. μ‹€μ œ UI 에 μ–΄λ– μ–΄λ– ν•œ 것이 ν‘œν˜„λ˜λŠλƒλŠ” AcceptanceTest 단에 맑기면 되리라.

λ‹€μŒλΆ€ν„° action 뢀뢄을 μž‘μ„±ν•œλ‹€λ©΄?

  1. action test λΌ λ§Œλ“ λ‹€. (생각해보건데, action μ—μ„œμ˜ Servlet 뢀뢄이 μžˆλŠ” κ³³ λ˜ν•œ μ–‡κ²Œ λ§Œλ“€ 수 μžˆκ² λ‹€λŠ” 생각을 ν•΄λ³Έλ‹€.)
  2. MockPresenter λΌ λ§Œλ“ λ‹€. μ€‘μš”ν•œ 것은 좜λ ₯κ²°κ³ΌλΌ ν…ŒμŠ€νŠΈν•˜λŠ”κ²ƒμ΄ λͺ©μ μ΄ μ•„λ‹ˆλΌ action κ²°κ³Ό ν–‰ν•΄μ§€λŠ” 일듀(Transaction)이 μ œλŒ€λ‘œ μΌμ–΄λ‚¬λŠ”μ§€λΌ ν…ŒμŠ€νŠΈν•˜λŠ” 것이닀. MockPresenter λŠ” κ·Έλƒ₯ ν•΄λ‹Ή λ©”μ†Œλ“œλ“€μ΄ ν˜ΈμΆœλ˜μ—ˆλŠ”μ§€λ§Œ verify ν•˜λŠ”μ •λ„λ©΄ μΆ©λΆ„ν•  것이닀.
  3. MockPresenter λΌ κ·Όκ±°λ‘œ Real Presenter λΌ λ§Œλ“ λ‹€.

See Also HumbleDialogBox

--1002
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:28:10
Processing time 0.0211 sec