๐Ÿ“ RxSwift | RxTest, UnitTest


์ด์ „ ๊ธ€ ์—์„œ ๋งŒ๋“  RxStarwars ํ”„๋กœ์ ํŠธ์—์„œ RxTest๋ฅผ ์‚ฌ์šฉํ•œ Unit Test๋ฅผ ์ถ”๊ฐ€ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค

๊ณ ๊ณ ์”ฝ ~~~ ! ๐Ÿš—๐Ÿš•๐Ÿš™



Hot Observables

subscribe ์— ์ƒ๊ด€์—†์ด Scheduler ์— ์ง€์ •๋œ ๋Œ€๋กœ ์ด๋ฒคํŠธ๋ฅผ ๋ฐฐ์ถœ.

Cold Observables

ํ”„๋กœ์ ํŠธ์˜ Observables๊ณผ ๋™์ผํ•˜๊ฒŒ ๋™์ž‘.
subscribe๊ฐ€ ์ƒ๊ธฐ๋ฉด ์‹คํ–‰๋œ๋‹ค.




์ง์ ‘ RxTest ์ถ”๊ฐ€ํ•ด๋ณด๊ธฐ

์›๋ž˜,, SPM ๋กœ RxSwift๋ฅผ ์ถ”๊ฐ€ํ–ˆ์ง€๋งŒ Xcode ์ž์ฒด์˜ ์—๋Ÿฌ๋กœ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋Š” ์ž‘์„ฑ, ๋นŒ๋“œ ๋˜์—ˆ์ง€๋งŒ
์‹คํ–‰์ด ๋˜์ง€์•Š๋Š” ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค ………. ๐Ÿ˜‡๐Ÿ˜ฅ
๊ด€๋ จ ์ด์Šˆ ๋งํฌ

Carthage๋กœ ๊ฐˆ์•„ํƒ€๋‹ˆ ์„ฑ๊ณตํ–ˆ๋‹ค๋Š” ์ฝ”๋ฉ˜ํŠธ๋ฅผ ๋ณด๊ณ  ๊ฐˆ์•„ํƒ€๋‹ˆ ์„ฑ๊ณตํ–ˆ๋‹ค ~ ! ํœด


์ถ”๊ฐ€ํ•  ํ”„๋กœ์ ํŠธ๋Š” ๐Ÿ“ RxSwift | MVVM withย RxSwift ์—์„œ ๋งŒ๋“  RxStarwars.
๐Ÿšจ ์ถ”๊ฐ€๋œ Test ์ฝ”๋“œ๋Š” GitHub RxTraining/RxStarwars/RxStarwarsTests/



๋Š๋‚€์ 
– Rx๊ฐ€ ๋ฌธ์ œ์—†์ด ๋™์ž‘ํ•œ๋‹ค๋Š” ์ „์ œํ•˜์— ViewModel ๋งŒ ํ™•์ธํ•˜๋ฉด ๋œ๋‹ค๋Š”๊ฒŒ ์ฐธ ๊น”๋”ํ–ˆ๋‹ค.
– View์˜ ์ฝ”๋“œ์˜ ์˜์กด์„ฑ์„ ๋ถ„๋ฆฌ์‹œํ‚ค๊ณ  Test๊ฐ€ ๊ฐ€๋Šฅํ•œ๊ฑด ์ตœ ~~ ๊ณ  !
– Scheduler๋ฅผ ์ž˜ ํ™œ์šฉํ•˜๋ฉด Mock ๋ฐ์ดํ„ฐ๋„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ฃผ์ž…, ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.


๊ณ ๋ฏผํ–ˆ๋˜ ๋ถ€๋ถ„
– Test๋ฅผ ๊ฐ€์žฅ ๋งŽ์ด ์ป๋˜ ์•„ํ‚คํ…์ณ๊ฐ€ MVP์˜€์—ˆ๋‹ค.
MVP์—์„œ๋Š” ์™„๋ฒฝํžˆ View์™€์˜ ์˜์กด์„ฑ์„ ๋Š์–ด๋‚ผ ์ˆ˜ ์—†์—ˆ๊ธฐ์— ์ตœ๋Œ€ํ•œ ์“ธ ์ˆ˜ ์žˆ๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•˜์ž๋Š” ์ฃผ์˜์˜€๋‹ค. (TDD์˜€๋‹ค๋ฉด ๋˜ ๋‹ค๋ฅธ ์–˜๊ธฐ๊ฐ€ ๋˜๋‹ˆ TDD๊ฐ€ ์•„๋‹Œ ์ฝ”๋“œ์˜ ์ด์•ผ๊ธฐ,,)
์ด๋ฒˆ ํ…Œ์ŠคํŠธ์—์„œ๋Š” ๊ฝค๋‚˜ ๊ตฌ์ฒด์ ์œผ๋กœ ํ…Œ์ŠคํŠธ๋ฅผ ์“ธ ์ˆ˜ ์žˆ์—ˆ์–ด์„œ ์–ด๋””๊นŒ์ง€ ํ•ญ๋ชฉ์„ ์ž‘์„ฑํ•ด์•ผ ViewModel์—์„œ ํ™•์ธํ•ด์•ผ ํ•˜๋Š” ๋ถ€๋ถ„์„ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๋Š”์ง€์— ๋Œ€ํ•ด์„œ ๊ณ ๋ฏผ์„ ํ–ˆ์—ˆ๋‹ค.
– ๋ฌผ๋ก  ๊ฐœ๋ฐœ์ž ์žฌ๋Ÿ‰์ด์ง€๋งŒ ๋‚˜๋Š” View์—์„œ ViewModel์— ๋ฐ”๋ผ๋Š” ๊ฒƒ. ํ•„์š”๋กœ ํ•˜๋Š” ๊ฑธ ํ™•์ธํ•˜๋Š” ์ •๋„๊นŒ์ง€ ์ž‘์„ฑํ–ˆ๋‹ค. (= UITableView ํ‘œ์‹œ ํ™•์ธ)
– Cold/Hot ์˜ ์ ์ ˆํ•œ ์‚ฌ์šฉ.
– ์ด๊ฑด ๋‹ค์–‘ํ•œ ๊ฒฝ์šฐ์˜ ์ˆ˜์—์„œ ์—ฌ๋Ÿฌ ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•ด๋ณด๋ฉฐ ๋ถ€๋”ชํ˜€์•ผ ๊ธฐ์ค€์ด ์ƒ๊ธธ ๊ฒƒ ๊ฐ™๋‹ค ๐Ÿ™„

๋‹ต๊ธ€ ๋‚จ๊ธฐ๊ธฐ

์•„๋ž˜ ํ•ญ๋ชฉ์„ ์ฑ„์šฐ๊ฑฐ๋‚˜ ์˜ค๋ฅธ์ชฝ ์•„์ด์ฝ˜ ์ค‘ ํ•˜๋‚˜๋ฅผ ํด๋ฆญํ•˜์—ฌ ๋กœ๊ทธ ์ธ ํ•˜์„ธ์š”:

WordPress.com ๋กœ๊ณ 

WordPress.com์˜ ๊ณ„์ •์„ ์‚ฌ์šฉํ•˜์—ฌ ๋Œ“๊ธ€์„ ๋‚จ๊น๋‹ˆ๋‹ค. ๋กœ๊ทธ์•„์›ƒ /  ๋ณ€๊ฒฝ )

Google photo

Google์˜ ๊ณ„์ •์„ ์‚ฌ์šฉํ•˜์—ฌ ๋Œ“๊ธ€์„ ๋‚จ๊น๋‹ˆ๋‹ค. ๋กœ๊ทธ์•„์›ƒ /  ๋ณ€๊ฒฝ )

Twitter ์‚ฌ์ง„

Twitter์˜ ๊ณ„์ •์„ ์‚ฌ์šฉํ•˜์—ฌ ๋Œ“๊ธ€์„ ๋‚จ๊น๋‹ˆ๋‹ค. ๋กœ๊ทธ์•„์›ƒ /  ๋ณ€๊ฒฝ )

Facebook ์‚ฌ์ง„

Facebook์˜ ๊ณ„์ •์„ ์‚ฌ์šฉํ•˜์—ฌ ๋Œ“๊ธ€์„ ๋‚จ๊น๋‹ˆ๋‹ค. ๋กœ๊ทธ์•„์›ƒ /  ๋ณ€๊ฒฝ )

%s์— ์—ฐ๊ฒฐํ•˜๋Š” ์ค‘