๐ก Write Test Code - Settings
Instrumented unit test
- ์ค์ ๊ธฐ๊ธฐ ๋ฐ ์๋ฎฌ๋ ์ดํฐ์์ ์คํ๋๋ ํ
์คํธ
- Android framework api ๋ฐ androidX์ ๊ฐ์ support api ํ์ฉ ๊ฐ๋ฅ
- ๋๋ฆฌ๊ธฐ ๋๋ฌธ์, ์ค์ ๊ธฐ๊ธฐ์ ๋์์ ๊ดํด ํ
์คํธ ํด์ผ ํ๋ ๊ฒฝ์ฐ์์๋ง ์ฌ์ฉ ํ๋ ๊ฒ์ด ์ข์
module-name/src/androidTest/java/ ์ ํ
์คํธ ํ์ผ์ด ์์น ๋์ด์ผ ํจ
local unit test
- ์ค์ ๊ธฐ๊ธฐ ๋ฐ ์๋ฎฌ๋ ์ดํฐ์์ ์คํ ๋ ํ์๊ฐ ์๋ ๊ฒฝ์ฐ์ ์ฌ์ฉํ๋ ํ
์คํธ
module-name/src/test/java/ ์ ํ
์คํธ ํ์ผ์ด ์์น ๋์ด์ผ ํจ
๐ก Write Test Code - Testability of code
์์กด์ฑ ์ฃผ์
์ ํ์์ฑ
- ํ
์คํธ๋ฅผ ์ํ ํจ์ ๊ตฌํ์ฒด ์์์, ํ
์คํธ ํ์ผ ์์์ ์ ์ด ํ ์ ์๋ ๋ถ๋ถ์ด ์๋ค๋ฉด ํ
์คํธ์ ์ ํฉํ ์ฝ๋๊ฐ ์๋ ๊ฐ๋ฅ์ฑ์ด ๋์
- ์๋ฅผ ๋ค์ด, ์์คํ
์๊ฐ์ ๊ฐ์ ธ ์ฌ ๋, ํ
์คํธ ํ๊ณ ์ ํ๋ ํจ์๊ฐ ์์คํ
ํด๋์ค์ ์์กด์ ์ด๊ฒ ๋จ
- ์ค์ ์๊ฐ๊ณผ ํ
์คํธ๋ฅผ ์ํ ์๊ฐ์ ๋น๊ต ํ ๋, ๋ฌธ์ ๊ฐ ์๊ธธ ์ ์์ ( ์ฝ๋๊ฐ ์คํ ๋๋ ๋์ ์๊ฐ์ด ํ๋ฅด๊ธฐ ๋๋ฌธ )
- DI๋ฅผ ํตํด clock ๊ฐ์ฒด๋ฅผ ์ฃผ์
ํด ์ค๋ค๋ฉด, clock ๊ฐ์ฒด์ ์์ฑ์ mocking์ ํตํด ๋ค๋ฃฐ ์ ์์ ( ex. fixed time )
- ์์กด์ฑ ์ฃผ์
์์ด๋ ํ
์คํธ๊ฐ ์ ๋๋ก ๋๊ธฐ ํ๋ฌ
Clock / Stream ๋ฑ JAVA 8+ Desugaring