Unit7 회고

YEN JΒ·2022λ…„ 12μ›” 2일
0

code states

λͺ©λ‘ 보기
40/43

[Testing]TDD

πŸ”† TDD 방법둠

TDD(Test-driven Development)πŸ–
TDDλž€ μ½”λ“œ μž‘μ„± μ „ ν…ŒμŠ€νŠΈλ₯Ό μ‚¬μš©ν•˜λŠ” μ†Œν”„νŠΈμ›¨μ–΄ 개발 λ°©λ²•λ‘ μœΌλ‘œ κ°œλ°œμžκ°€ μ›ν•˜λŠ” μ½”λ“œ κ²°κ³Όλ₯Ό 미리 μ •μ˜ν•œ ν›„ 이λ₯Ό λ°”νƒ•μœΌλ‘œ μ½”λ“œλ₯Ό μž‘μ„±ν•˜λŠ” 방법을 λ§ν•œλ‹€.
β†’ TDDλ₯Ό 톡해 μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό κ°œλ°œν•œλ‹€μ˜ 의미
: μž‘μ€ λ‹¨μœ„μ˜ ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€λ₯Ό μž‘μ„±ν•˜κ³  이λ₯Ό ν†΅κ³Όν•˜λŠ” μ½”λ“œλ₯Ό μž‘μ„±ν•˜λŠ” 과정을 λ°˜λ³΅ν•˜λŠ” 것

  • TDD 개발주기

    1. Write Failing Test
      : μ‹€νŒ¨ν•˜λŠ” μ½”λ“œλ₯Ό λ¨Όμ € μž‘μ„±
    2. Make Test Pass
      : ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό μ„±κ³΅μ‹œν‚€κΈ° μœ„ν•œ μ‹€μ œ μ½”λ“œ μž‘μ„±
    3. Refactor
      : 쀑볡 μ½”λ“œ 제거, μΌλ°˜ν™” λ“±μ˜ λ¦¬νŒ©ν† λ§ μˆ˜ν–‰
  • TDD μ‚¬μš© 이유

    • μ˜ˆμƒν•˜μ§€ λͺ»ν–ˆλ˜ 버그λ₯Ό 쀄여 μ†Œμš” μ‹œκ°„μ„ 쀄일 수 있음

πŸ”† React와 TDD

πŸ’‘ Reactν™˜κ²½μ—μ„œμ˜ ν…ŒμŠ€νŠΈ

  • Testing Library, Jestλ₯Ό μ΄μš©ν•˜μ—¬ React ν™˜κ²½μ—μ„œμ˜ ν…ŒμŠ€νŠΈ μˆ˜ν–‰ κ°€λŠ₯
    • Testing Libraryλ‚˜ JestλŠ” λ‹€λ₯Έ ν”„λ ˆμž„μ›Œν¬μ—μ„œλ„ 이용 κ°€λŠ₯함
    • React Testing Library
      : React μ»΄ν¬λ„ŒνŠΈλ₯Ό ν…ŒμŠ€νŠΈν•˜κΈ° μœ„ν•΄ λ§Œλ“€μ–΄μ§„ 라이브러리
      • Testing Libraryμ—μ„œ μ œκ³΅ν•˜λŠ” React용 Testing Library
    • Jest
      : JavaScript의 Testing Framework/Test Runner
      • ν…ŒμŠ€νŠΈ νŒŒμΌμ„ μ°Ύμ•„ μžλ™μœΌλ‘œ ν…ŒμŠ€νŠΈ μ‹€ν–‰
      • ν•¨μˆ˜λ₯Ό μ΄μš©ν•˜μ—¬ μ²΄ν¬ν•œ λ’€ ν…ŒμŠ€νŠΈ 성곡 μ—¬λΆ€ νŒλ‹¨
    🏷 이 밖에 μ•Œμ•„λ‘λ©΄ 쒋을 것듀
    • @testing-library/jest-dom
      : Jest-domμ—μ„œ μ œκ³΅ν•˜λŠ” custom matcher μ‚¬μš© κ°€λŠ₯
    • @testing-library/react
      : μ»΄ν¬λ„ŒνŠΈμ˜ μš”μ†Œλ₯Ό μ°ΎκΈ° μœ„ν•œ queryκ°€ 포함
    • @testing-library/user-event
      : click λ“± μ‚¬μš©μž μ΄λ²€νŠΈμ— 이용
    • test ν•¨μˆ˜
      : Jest ν•¨μˆ˜λ‘œ ν…ŒμŠ€νŠΈ μ‹€ν–‰ μ‹œ λ°˜λ“œμ‹œ μ΄μš©ν•˜λŠ” ν…ŒμŠ€νŠΈ ν•¨μˆ˜
      • ν˜•μ‹: test(ν…ŒμŠ€νŠΈ μ„€λͺ…, ν…ŒμŠ€νŠΈ ν•¨μˆ˜)
      • test ν•¨μˆ˜ λŒ€μ‹  it ν•¨μˆ˜ μ‚¬μš© κ°€λŠ₯
    • describe() ν•¨μˆ˜
      : test ν•¨μˆ˜λ‚˜ it ν•¨μˆ˜λ₯Ό ν•˜λ‚˜μ˜ νŒŒμΌμ— μ—¬λŸ¬ 개 포함할 수 μžˆλ„λ‘ ν•΄μ£ΌλŠ” ν•¨μˆ˜
      • ν˜•μ‹: test(ν…ŒμŠ€νŠΈ μ„€λͺ…, ν…ŒμŠ€νŠΈ ν•¨μˆ˜λ“€(test, it))
      • describe ν•¨μˆ˜ 블둝은 Test Suites, test/it ν•¨μˆ˜ 블둝은 Test(Test Case)라고 함

<였늘의 일기>
이번 μœ λ‹›μ€ 개발 ν™˜κ²½μ—μ„œ ν…ŒμŠ€νŠΈλ₯Ό ν•˜λŠ” 방법에 λŒ€ν•΄ κ³΅λΆ€ν–ˆλ‹€. κ·Έλ™μ•ˆ μ‹œν—˜ 문제λ₯Ό ν‘ΈλŠ” ν•™μƒμ˜ μž…μž₯μ΄μ—ˆλ‹€λ©΄ 이번 μœ λ‹›μ—μ„œλ§ŒνΌμ€ μ‹œν—˜ μΆœμ œμžκ°€ 된 κΈ°λΆ„μ΄μ–΄μ„œ ꡉμž₯히 μƒ‰λ‹¬λžλ‹€. κ·Έλ™μ•ˆ λ‚΄κ°€ κ³Όμ œν•˜λ©° ν’€μ–΄μ™”λ˜ 것듀이 μ΄λŸ¬ν•œ λ°©μ‹μœΌλ‘œ λ™μž‘ν–ˆλ˜ κ±°κ΅¬λ‚˜λ₯Ό 어렴풋이 μ§μž‘ν•  수 μžˆμ—ˆλ˜ μœ λ‹›μ΄μ—ˆλ‹€.

0개의 λŒ“κΈ€