Notice
Recent Posts
Recent Comments
Link
ยซ   2024/05   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋กXCTest (7)

lgvv98

[XCTest] Test Double (Swift)

## ์‹œ์ž‘ - sut (system under test): ํ…Œ์ŠคํŠธ ๋Œ€์ƒ - doc (depended-on component): sut์ด ์˜์กดํ•˜๊ณ  ์žˆ๋Š” ๊ตฌ์„ฑ์š”์†Œ ํ…Œ์ŠคํŠธ ๋”๋ธ”์ด๋ž€, doc์™€ ๋™์ผํ•œ API๋ฅผ ์ œ๊ณต ## ์™œ ํ•„์š”ํ• ๊นŒ? Solitary or Sociable? ํ…Œ์ŠคํŠธ ์ค‘์ธ ๋‹จ์œ„๊ฐ€ Sociableํ•œ์ง€ ํ˜น์€ Solitary์ธ์ง€์˜ ์—ฌ๋ถ€๊ฐ€ ์ค‘์š”ํ•˜๋‹ค. Sociable์˜ ๊ฒฝ์šฐ์— ํ…Œ์ŠคํŠธํ•˜๋Š” Unit์˜ ๊ฒฐํ•จ์ด ์•„๋‹Œ ์˜์กดํ•˜๊ณ  ์žˆ๋Š” ํด๋ž˜์Šค์˜ ๊ฒฐํ•จ์œผ๋กœ ์ธํ•ด ํ…Œ์ŠคํŠธ๊ฐ€ ์‹คํŒจํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ๋ง‰๊ธฐ ์œ„ํ•ด ์‹ค์ œ ๋™์ž‘ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ๋ณ„๊ฐœ์˜ ๊ฐ์ฒด๋ฅผ ๋”ฐ๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ๋‹ค. ## ํ…Œ์ŠคํŠธ ๋”๋ธ”์˜ ์ข…๋ฅ˜ - Dummy: ์•„๋ฌด๋Ÿฐ ๋™์ž‘์„ ํ•˜์ง€ ์•Š์œผ๋ฉฐ, ์ธ์Šคํ„ด์Šคํ™” ๋œ ๊ฐ์ฒด๋งŒ ํ•„์š”ํ•˜๊ณ , ๊ธฐ๋Šฅ๊นŒ์ง€๋Š” ํ•„์š”ํ•˜..

apple/๐Ÿ—ฝ XCTest 2023. 1. 9. 01:40
[XCTest] XCTest์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ธฐ 1ํŽธ

XCTest์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ธฐ 1ํŽธ ์ œ๋ชฉ์ด ํŒŒ๋ž€์ƒ‰์œผ๋กœ ๋ฐ”๋€Œ์—ˆ๋‹ค.์ œ๋ชฉ ์ƒ‰์ด ๋ฐ”๋€ ์ด์œ ๋Š” ์Šค์Šค๋กœ ์ƒ๊ฐํ•˜๊ธฐ์— ๋Ÿฌ๋‹์ปค๋ธŒ๋ฅผ ๋„˜์–ด์„ค ๋•Œ๋งˆ๋‹ค ๋ธ”๋กœ๊ทธ์— ๋ณ€ํ™”๋ฅผ ์ฃผ๋Š” ์˜๋ฏธ ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” XCTest๋ฅผ ๊ณต์‹๋ฌธ์„œ๋ฅผ ํ†ตํ•ด ์ •๋ฆฌํ•ด๋ณด์ž. ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋Š” ๊ธฐ์กด์—๋„ ์•Œ์Œ์•Œ์Œ ์ž‘์„ฑํ•˜๊ณ  ์žˆ์—ˆ์ง€๋งŒ, ์ด๋ ‡๊ฒŒ ์ •๋ฆฌํ•˜๋Š”๊ฑด ์ด๋ฒˆ์ด ์ฒ˜์Œ์ด๋‹ค. Kuring ํ”„๋กœ์ ํŠธ๊ฐ€ ์•ˆ์ •ํ™” ๋˜๊ณ , ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์—์„œ๋„ ํ…Œ์ŠคํŠธ์ฝ”๋“œ ์ž‘์„ฑ์— ์‹ค์ˆ˜๊ฐ€ ์žˆ๊ธด ํ•˜์ง€๋งŒ ์ ์ฐจ ์ž์œ ๋กญ๊ฒŒ ์ ์šฉํ•˜๊ณ  ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋˜ ์ค‘ PM์œผ๋กœ ์ผ์„ ํ•˜๋ฉด์„œ ๋ฑ…ํฌ์ƒ๋Ÿฌ๋“œ์— ๋Œ€ํ•ด์„œ ์กฐ์‚ฌํ–ˆ๋Š”๋ฐ, ๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ์—์„œ ๋ณธ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ๋‚ด์šฉ์ด ํ•™์Šต ์˜์ง€๋ฅผ ๐Ÿ”ฅ๋ถˆํƒœ์› ๋‹ค. > ์ด ํฌ์ŠคํŒ…์˜ ๊ถ๊ทน์ ์ธ ๋ชฉํ‘œ๋Š” ๋ฑ…ํฌ์ƒ๋Ÿฌ๋“œ ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ์—์„œ ๋‚˜์™€์žˆ๋Š” ํ…Œ์ŠคํŠธ ์ž‘์„ฑ๋ฒ•์„ ์™„๋ฒฝํ•˜๊ฒŒ ์Šต๋“ํ•˜๋Š” ๊ฒƒ์ด๋‹ค!! NOTE: - ํ•ด๋‹น ํฌ์ŠคํŒ…์—์„œ๋Š” ๊ทธ๋™์•ˆ ์ž์ฃผ ..

apple/๐Ÿ—ฝ XCTest 2022. 7. 3. 15:41
[XCTest] RxTest ์™€ RxBlocking์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž

RxTest / RxBlocking โœ… ํ…Œ์ŠคํŠธ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž. Rx... ์–˜๋‚ด ๋„๋Œ€์ฒด ์–ด๋–ป๊ฒŒ ํ…Œ์ŠคํŠธํ• ๊นŒ ๊ณ ๋ฏผ ๋งŽ์ด ํ–ˆ์—ˆ๋Š”๋ฐ, ์ด๋Ÿฐ ๋„๊ตฌ๋“ค์ด ์žˆ๋‹ค๋‹ˆ! ์—ฌ๋‹ด์ด์ง€๋งŒ ์ด๋Ÿฐ๊ฑฐ Kuringํ”„๋กœ์ ํŠธ ํ•˜์‹œ๋Š” ๋ถ„์˜ ํ…Œ์ŠคํŠธ์ฝ”๋“œ ๋ณด๋Š”๋ฐ ์•ฝ๊ฐ„ ์น˜์ž„;; Swift์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋„ ์ถฉ๋ถ„ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ ๊ตณ์ด Rx๋ฅผ ํ•˜๋Š”๊ฒŒ ๋„์›€์ด ํด๊นŒ?? ์ƒ๊ฐ๋„ ๋“ค์ง€๋งŒ ์•„๋ฌดํŠผ ๊ณต๋ถ€ํ•ด๋ณด์ž (UIButton์˜ rx.tap ๋ชป์“ด๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋‹ˆ ๊ณต๋ถ€ํ•ด์•ผ๊ฒ ใ„ท.ใ…) ๐ŸŸ  RxTest๋ž€? Observable์˜ ๊ฐ€์ƒ์˜ ์‹œ๊ฐ„ ๊ฐœ๋…์„ ์ฃผ์ž…ํ•ด์„œ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๊ฐ€์ƒ์˜ ์‹œ๊ฐ„์ด ๋‹ค ํ๋ฅผ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฐ ํ›„์— ์ด๋ฒคํŠธ๋ฅผ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ์–ด. ๊ฐ ์ดˆ์— ๋ฌธ์žํ•˜๋‚˜ ๋ฐฉ์ถœํ•œ๋‹ค๊ณ  ๊ฐ€์ • 1์ดˆ -> "A" 2์ดˆ -> "B" 3์ดˆ -> "C" // 2sec์— B๊ฐ€ ๋‚˜์™”๋Š”์ง€ ๊ฒ€์ฆ โœ… R..

apple/๐Ÿ—ฝ XCTest 2022. 2. 20. 15:31
[XCTest] ๐Ÿง‘๐Ÿป‍๐Ÿ’ป Xcode ๊ธฐ์กด ํ”„๋กœ์ ํŠธ์— XCTest ์ž‘์„ฑ ํŒŒ์ผ ์ถ”๊ฐ€ํ•˜๊ธฐ!

โœ… ์—๋Ÿฌ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž. ๐ŸŸ  Library not loaded: @rpath/XCTest.framework/XCTest Xcode ํŒŒ์ผ์„ ๋งŒ๋“ค ๋•Œ, test๋ฅผ includeํ•˜์ง€ ์•Š๊ณ  ๋งŒ๋“ค์—ˆ๋‹ค๊ฐ€ ์ดํ›„์— ํ…Œ์ŠคํŠธ๋ฅผ ํ•ด์•ผํ•ด์„œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ  ๋Œ๋ฆฌ๋Š”๋ฐ, ์•ฑ์ด ์ฃฝ์–ด๋ฒ„๋ฆฌ๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒ. ๊ทธ๋ž˜์„œ ๋กœ๊ทธ ํ›‘์–ด ๋ณด๋‹ˆ๊นŒ ์ €๋Ÿฐ ์—๋Ÿฌ๋ผ ์–ด๋–ป๊ฒŒ ํ• ๊นŒ ์ฐพ์•„๋ด„. โœ… [ํ•ด๊ฒฐ๋ฒ•] ๊ฒฐ๊ตญ์€ ๊ธฐ์กด ํ”„๋กœ์ ํŠธ์— ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ์„ ์œ„ํ•œ ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด์•ผ ํ•˜๋Š”๋ฐ ์•„๋ž˜์˜ ์‚ฌ์ง„์ฒ˜๋Ÿผ ์ € ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๊ณ  ์ €๊ธฐ ํ•˜๋‹จ์— ํ”Œ๋Ÿฌ์Šค ๋ชจ์–‘์„ ํด๋ฆญ ๊ทธ๋Ÿผ ๊ทธ ํ”Œ๋Ÿฌ์Šค ๋ชจ์–‘์— ๋ง‰ ์ด๋ ‡๊ฒŒ ๋œฐํƒ ๋ฐ, ์—ฌ๊ธฐ์— Unit Test ๋ž‘ UI Test๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Œ Target์ด๋ผ๊ณ  ์จ์ ธ์žˆ๋Š” ํŒŒ์ผ ์„ ํƒํ•˜๊ณ  ๋‚ด ํ”„๋กœ์ ํŠธ ํŒŒ์ผ์„ ๋ณด๋ฉด ํ…Œ์ŠคํŠธ ํŒŒ์ผ์ด ๋งŒ๋“ค์–ด์ง„ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ..

apple/๐Ÿ—ฝ XCTest 2022. 2. 15. 02:56