ํ
์คํฐ๋ธ ์ํคํ
์ณ - ์ด์น๋ฏผ ๋ฑ
ํฌ์๋ฌ๋
ํ
์คํธ์ ์๋ฆฌ
์ํ๋ ๊ฐ์ assert ๊ฐ true
verify ๊ฐ true
ํ
์คํธ๋ฅผ ์ด๋ ต๊ฒ ํ๋ ๊ฒ
- ์์กด ํด๋์ค์ ๋์
-> ๋ชจํนํด์ ํด๊ฒฐ
-> ์ด๋ค ๋ณํ๊ฐ์ฌ ๊ธฐ์ฆ ๊ฒ์ธ์ง ์ ๋ํ ์คํ
๊ณผ ๋ชจํน์ ์ด์ฉํ์ฌ ์ ์ธ
์๋๋ก์ด๋ ์์กด ๋์
- ์๋๋ก์ด๋ ์์กด์ฑ์ด ์์ผ๋ฉด ํ
์คํธ ๋ถ๊ฐ
- wrapping, mocking์ผ๋ก ํ
์คํธ ํด๊ฒฐ
์ํคํ
์ณ๋?
์ฝ๋์ ์ญํ ์ ๋ถ๋ฆฌ : ์ฌ์ฌ์ฉ์ฑ์ ๋์(๋์ ์์ง๋), ๋ณ๊ฒฝ ์ ์ฐํ๊ฒ(๋ฎ์ ๊ฒฐํฉ๋)
์์น1.
๋ชจ๋ ์์กด์ฑ ๊ฐ์ฒด๋ฅผ ์ฃผ์
๋ฐ๋๋ค.
ํ๋ ์ ํฐ๊ฐ ์ง์
๋ ํฌ์งํ ๋ฆฌ๋ฅผ ์์ฑํ์ฌ ๊ฐ์ง๋ฉด ๋ชฉ์
๋ ํฌ์งํ ๋ฆฌ ์ฃผ์
๋ถ๊ฐ
-> ์์ฑ์์์ ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ๋ฐ๋๋ค.
-> ์ฅ ๊ทธ๋ผ ์กํฐ๋นํฐ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฐธ์กฐํ๋๋ฐ?
-> DI๋ฅผ ์ด์ฉํ๋ค.
static์ ์์
static ์ด ์์ผ๋ฉด ๋ชฉ์
๋ถ๊ฐ
์์น2.์๋ ์์กด ๋์์ wrappingํ๋ค.
-> SDK๋ฑ ๋ทฐ๋ ์ ๋ถ ๋ํํ๋ค.
-> view๋ ์ธํฐํ์ด์ค๋ก ๋๋๋ค.
์์น3. ๋ชจ๋ ๋์์ presenter๋ฅผ ํตํ๋ค.
๋ฒํผ์ ๋๋ฅด๋ฉด ๋ค๋ฅธ ๋ทฐ๋ฅผ ๋ฐ๊พผ๋ค? -> ์กํฐ๋นํฐ ์์์๋ง ํด๊ฒฐ ๊ฐ๋ฅํ์ง ์์?
-> presenter.oncreate()์ ๊ฐ์ ์์ผ๋ก ๋ถํ์ํ๊ฒ๋ ์ ๋ถ ํ๋ ์ ํฐ์ ๋ฃ๋๋ค.
-> passive View ๋ก ๊ตฌ์ฑํ๋ค. (MVVM๋ ๋ง์ฐฌ๊ฐ์ง๋ค)
๊ทธ๋ผ ์ค์ ๋์์ ์ํด์ UI ํ
์คํธ์ DBํ
์คํธ๋?
์์ด๋๋ ํผ๋ฐ์ค -> InstrumentationRegistry ๋ฅผ ์ด์ฉํ์ฌ context๋ฅผ ํ๋ํ์ฌ ํ
์คํธํ๋ค!
ํ
์คํฐ๋ธ ์ปฌ์ณ๋ฅผ ๋ง๋ ๋ค!
QA๋ก ๊ฒ์ฆํ๋ ๊ฒ์ด ๋น ๋ฅด๋ค๊ณ ๋๊ปด์ง๋ค. ํ
์คํธ๋ฅผ ์ถ๊ฐํ ์๊ฐ์ด ์๋ค.
=> ํ
์คํธ์ ํจ์ฉ์ฑ์ ๋ชจ๋ฅด๊ฒ ๋ค. ์ผ์ ์ด ๋ฐ๋น ๋๊ธฐ๊ฐ ์ด์ง ์๋๋ค.
codecov
๊นํ ํ๋ฌ๊ทธ์ธ; PR๋ง๋ค ์ปค๋ฒ๋ฆฌ์ง ๋ฆฌํฌํธ
์ต์ํด์ง๊ธฐ๊น์ง ๊ฐ์ ์ฑ์ ๋์ : ์ปค๋ฒ๋ฆฌ์ง๊ฐ ์ด์ ๋ณด๋ค ๋์ง ์์ผ๋ฉด Don't approve