ν…ŒμŠ€νŠΈλ₯Ό ν†΅ν•œ ν’ˆμ§ˆ ν–₯μƒμœΌλ‘œλŠ” 크게 3κ°€μ§€κ°€ μžˆμŠ΅λ‹ˆλ‹€.

  1. μˆ˜λ™ν…ŒμŠ€νŠΈ
  2. λ‹¨μœ„ν…ŒμŠ€νŠΈ(Unit Test)
  3. ν†΅ν•©ν…ŒμŠ€νŠΈ

μˆ˜λ™ν…ŒμŠ€νŠΈλŠ” print μ°μœΌλ©΄μ„œ ν…ŒμŠ€νŠΈλ₯Ό ν•˜λŠ”κ²ƒμœΌλ‘œβ€¦

λ‹¨μœ„ν…ŒμŠ€νŠΈ (Unit Test)λŠ” λ©”μ†Œλ“œ 및 클래슀처럼 μž‘μ€ λ‹¨μœ„λ₯Ό ν…ŒμŠ€νŠΈ ν• λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€. λ˜ν•œ 외뢀에 μ˜μ‘΄ν•˜μ§€ μ•ŠλŠ” ν…ŒμŠ€νŠΈλ₯Ό λ§ν•©λ‹ˆλ‹€. μ΄λ•Œ ν…ŒμŠ€νŠΈκ°€ ν•„μš”ν•œ κ²½μš°μ—λŠ” DB, Network, 데이터 κ²€μ¦μœΌλ‘œ μž₯애에 λŒ€ν•œ μ‹ μ†ν•œ ν”Όλ“œλ°±, κ°œλ°œμ£ΌκΈ°μ—μ„œ μ‘°κΈ° μž₯애감지, μ•ˆμ „ν•œ μ½”λ“œ λ¦¬νŒ©ν„°λ§, μ•ˆμ •μ μΈ κ°œλ°œμ†λ„κ°€ λ’·λ°›μΉ¨ λ©λ‹ˆλ‹€.

ν…ŒμŠ€νŠΈ μ½”λ“œλŠ” main()에 선언을 ν•˜κ³  크게 test(), expect() ν•¨μˆ˜λ‘œ ꡬ성을 ν•©λ‹ˆλ‹€.

testλŠ” ν…ŒμŠ€νŠΈμ— λŒ€ν•œ μ„€λͺ…κ³Ό μ‹€μ œ ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό 적고 μ‹œκ°„μ œν•œ, ν…ŒμŠ€νŠΈ ν™˜κ²½ 등을 λͺ…μ‹œν• μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.

expectλŠ” expect(μ‹€μ œκ°’, κΈ°λŒ€κ°’)으둜 ν…ŒμŠ€νŠΈμ˜ κΈ°λŒ€κ°’κ³Ό μ‹€μ œκ°’μ„ λΉ„κ΅ν•˜κ³  assert와 λ™μΌν•©λ‹ˆλ‹€.

setUp은 ν…ŒμŠ€νŠΈλ₯Ό μ‹œμž‘ν•˜κΈ°μ „μ— 섀정을 ν•΄μ£Όκ³  ν…ŒμŠ€νŠΈ λ‹¨μœ„λ§ˆλ‹€ μ‹€ν–‰λ©λ‹ˆλ‹€. κ·Έλž˜μ„œ ν•¨μˆ˜ ν•˜λ‚˜κ°€ ν…ŒμŠ€νŠΈ λ‹¨μœ„ ν•˜λ‚˜μž…λ‹ˆλ‹€. μ΄λ•Œ ν•œ νŒŒμΌμ— μ—¬λŸ¬κ±° test() ν•¨μˆ˜κ°€ 있으면 μ—¬λŸ¬λ²ˆ μ‹€ν–‰λ©λ‹ˆλ‹€.

tearDown은 ν…ŒμŠ€νŠΈλ₯Ό 마치고 ν•  μž‘μ—…μ„ μ •ν•΄μ€λ‹ˆλ‹€. setUp()ν•¨μˆ˜μ™€ λ™μΌν•©λ‹ˆλ‹€.

그리고 μΆ”κ°€μ μœΌλ‘œ κ²€μƒ‰ν•΄λ³΄λ‹ˆκΉŒβ€¦. setUpAll은 ν…ŒμŠ€λ₯Ό μ‹œμž‘ν•˜κΈ°μ „μ— 섀정을 ν•΄μ£Όμ§€λ§Œ 파일 ν•˜λ‚˜μ— ν•œλ²ˆλ§Œ μ‹€ν–‰λ©λ‹ˆλ‹€. tearDownAll은 ν…ŒμŠ€νŠΈλ₯Ό 마치고 ν•  μž‘μ—…μ„ μ •ν•΄μ€λ‹ˆλ‹€. λ™μΌν•˜κ²Œλ„ 파일 ν•˜λ‚˜μ— ν•œλ²ˆλ§Œ μ‹€ν–‰λ©λ‹ˆλ‹€. (setUpAll()ν•¨μˆ˜μ™€ λ™μΌν•©λ‹ˆλ‹€.

ν…ŒμŠ€νŠΈ ν™˜κ²½μ€€λΉ„λ‘œλŠ”β€¦ given β‡’ when β‡’ then κΈ°λ²•μœΌλ‘œ μ‚¬μš©λ©λ‹ˆλ‹€.

λ‹€μŒμœΌλ‘œλŠ”β€¦

ν†΅ν•©ν…ŒμŠ€νŠΈ (Group)λŠ” μ—¬λŸ¬ ν…ŒμŠ€νŠΈλ₯Ό λ¬Άμ–΄μ„œ ν…ŒμŠ€νŠΈν•©λ‹ˆλ‹€.