KoreaMango ๋‚˜๋ฌด

[iOS] Unit Test - ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์–ด๋–ป๊ฒŒ ํ•˜๋Š”๊ฑด๋ฐ.. (2) ๋ณธ๋ฌธ

iOS/Unit Test

[iOS] Unit Test - ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์–ด๋–ป๊ฒŒ ํ•˜๋Š”๊ฑด๋ฐ.. (2)

KoreaMango 2022. 7. 8. 00:49

๐Ÿ™ˆ์„œ๋ก 

์ด๋ฒˆ ๊ธ€์€ ์•ผ๊ณฐ ์•„์นด๋ฐ๋ฏธ์˜ ํ•œ ๊ฐ•์˜๋ฅผ ๊ฑฐ์˜ ๋”ฐ๋ผ์ผ๋‹ค์‹œํ”ผ.. ๋„ค.. ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค..

์ดํ•ดํ•˜๋ฉด์„œ ์“ฐ๊ณ  ์žˆ์–ด์š” ใ…Žใ…Ž,,

์ด ํŒŒํŠธ๋Š” Test file์„ ๋ณด๋ฉฐ ๋งˆ๋ฌด๋ฆฌ ์ง“์Šต๋‹ˆ๋‹ค.

XCTest

XCTest๋Š” ์œ ๋‹› ํ…Œ์ŠคํŠธ, ํผํฌ๋จผ์Šค ํ…Œ์ŠคํŠธ, UI ํ…Œ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  ์‹คํ–‰ํ•˜๋Š” ํ”„๋ ˆ์ž„ ์›Œํฌ์ด๋‹ค.

XCTestCase

ํ…Œ์ŠคํŠธ ํด๋ž˜์Šค๊ฐ€ ์ƒ์†ํ•˜๊ณ  ์žˆ๋Š” XCTestCase๋Š” ๋ฌด์—‡์ผ๊นŒ?

XCTestCase ๋Š” ์ถ”์ƒ ํด๋ž˜์Šค์ธ XCTest์˜ ํ•˜์œ„ ํด๋ž˜์Šค๋กœ, ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์ƒ์†กํ•ด์•ผ ํ•˜๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ํด๋ž˜์Šค์ด๋‹ค.

XCTest๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ ํ”„๋ ˆ์ž„ ์›Œํฌ์˜ ์ด๋ฆ„์ด๊ธฐ๋„ ํ•˜๊ณ , ํ…Œ์ŠคํŠธ์—์„œ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ด ๋˜๋Š” ์ถ”์ƒ ํด๋ž˜์Šค์˜ ์ด๋ฆ„์ด๊ธฐ๋„ ํ•˜๋‹ค.

XCTestCase๋ฅผ ์ƒ์†๋ฐ›์€ ํด๋ž˜์Šค์—์„œ๋Š” test์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋‹ค์–‘ํ•œ ํ”„๋กœํผํ‹ฐ์™€ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

setUpWithError()

setUpWithError()๋Š” ๊ฐ๊ฐ์˜ test case ๊ฐ€ ์‹คํ–‰๋˜๊ธฐ ์ „๋งˆ๋‹ค ํ˜ธ์ถœ๋˜์–ด ๊ฐ ํ…Œ์ŠคํŠธ๊ฐ€ ๋ชจ๋‘๊ฐ™์€ ์ƒํƒœ์™€ ์กฐ๊ฑด์—์„œ ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด ์ค„ ์ˆ˜ ์žˆ๋Š” ๋ฉ”์„œ๋“œ์ด๋‹ค.

tearDownWithError()

tearDownWithError()๋Š” ๊ฐ๊ฐ์˜ test ์‹คํ–‰์ด ๋๋‚œ ํ›„ ๋งˆ๋‹ค ํ˜ธ์ถœ๋˜๋Š” ๋ฉ”์„œ๋“œ์ด๋‹ค. ๋ณดํ†ต setUpWithError()์—์„œ ์„ค์ •ํ•œ ๊ฐ’๋“ค์„ ํ•ด์ œํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค.

ํ˜ธ์ถœ ์ˆœ์„œ

setUpWithError() 

TestCase 1

tearDownWithError()

setUpWithError()

TestCase 2

tearDownWithError()

setUpWithError()

TestCase 3

...

 

setUp() ๊ณผ tearDown() ๋ฉ”์„œ๋“œ ์ฐจ์ด

setUp() ๊ณผ tearDown() ๋ฉ”์„œ๋“œ์™€ setUpWithError(), tearDownWithError()์˜ ์ฐจ์ด๋Š” ์—๋Ÿฌ๋ฅผ throw ํ•  ์ˆ˜ ์žˆ๋Š๋ƒ์— ๋Œ€ํ•œ ์ฐจ์ด์ด๋‹ค. ํ…Œ์ŠคํŠธ ๋ฉ”์„œ๋“œ๋ฅผ throw ๋ฉ”์„œ๋“œ๋กœ ๋งŒ๋“ค์–ด์ฃผ๋ฉด, ๋‚ด๋ถ€์—์„œ ๋”ฐ๋กœ ์—๋Ÿฌ ํ•ธ๋“ค๋ง์„ ํ•ด์ฃผ๋Š” ์ž‘์—…์—†์ด ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ด์ ์ด ์žˆ๋‹ค. ์›๋ž˜๋Š” setUp()๊ณผ tearDown() ๋ฉ”์„œ๋“œ๊ฐ€ ๊ธฐ๋ณธ ๋ฉ”์„œ๋“œ๋กœ ์ œ๊ณต์ด ๋˜์—ˆ๋Š”๋ฐ xcode 11.4 ๋ฒ„์ „ ์ดํ›„๋กœ ๊ธฐ๋ณธ์œผ๋กœ setUpWithError(), tearDownWithError()๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์žˆ์–ด์š”.

 

 

์ž์„ธํ•œ ๋‚ด์šฉ์€

 

Apple Developer Documentation

 

developer.apple.com

testExample()

test๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ฉ”์„œ๋“œ๋Š” ์šฐ๋ฆฌ๊ฐ€ ์ž‘์„ฑํ•ด์•ผํ•  test case ๊ฐ€ ๋˜๋Š” ๋ฉ”์„œ๋“œ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ํ…Œ์ŠคํŠธํ•  ๋‚ด์šฉ์„ ๋ฉ”์„œ๋“œ๋กœ ์ž‘์„ฑํ•ด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”์„œ๋“œ ๋„ค์ด๋ฐ์˜ ์‹œ์ž‘์€ ๋ฌด์กฐ๊ฑด test๋กœ ์‹œ์ž‘๋˜์–ด์•ผ ํ•œ๋‹ค.

 

๐Ÿ™๐Ÿป Ref

 

Unit Test ์ž‘์„ฑํ•˜๊ธฐ - ์•ผ๊ณฐ๋‹ท๋„ท

Unit Test ์ž‘์„ฑํ•˜๊ธฐ ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ์ข‹๋‹ค๋Š” ๋ง์„ ๋งŽ์ด ๋“ค์–ด๋ณด์…จ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.  ํ•˜์ง€๋งŒ ๋ง‰์ƒ ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•ด๋ณด๋ ค๊ณ  […]

yagom.net