-
Notifications
You must be signed in to change notification settings - Fork 0
๐ค AN ํ ์คํธ ์ ๋ต
Yehyun Jo edited this page Aug 7, 2024
·
1 revision
UI Test: Espresso, Unit Test: Kotest, Mock: Mockk
BDD ๊ธฐ๋ฒ ์ค Given-When-Then ํจํด์ ์ฌ์ฉํ์ฌ ์์ฑํ๋ค.
- given: ์๋๋ฆฌ์ค ์งํ์ ํ์ํ ๋ฐ์ดํฐ ์ค๋น
- when: ์๋๋ฆฌ์ค๋ฅผ ์งํํ๋๋ฐ ํ์ ์กฐ๊ฑด
- then: ์๋๋ฆฌ์ค๋ฅผ ์๋ฃํ์ ๋ ๋ณด์ฅํด์ผ ํ๋ ๊ฒฐ๊ณผ
@Test
fun `test`() {
// given
val num1 = 1
val num2 = 2
// when
val actual = sum(num1, num2)
// then
val expect = 3
actual shouldBe expect
}
- ViewModel Test ๋ ๋ฐ๋์ ๊ตฌํํด์ผ ํ๋ค.
- ๊ทธ ์ธ์ Test๋ ์์ฑ์๊ฐ ์ ํ์ ์ผ๋ก ํ ์คํธํ๋ค.
- ์ฑ๊ณต ์๋๋ฆฌ์ค๋ **๋ฐ๋์ Fake ๊ฐ์ฒด**๋ฅผ ์ฌ์ฉํ์ฌ ํ ์คํธํ๋ค.
- ์์ธ ์๋๋ฆฌ์ค์ ๊ฒฝ์ฐ๋ Mock์ ํ์ฉํ์ฌ ํ ์คํธํด๋ ๋๋ค.
Fake ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ ์ด์
- Product์ฉ Repository ๊ฐ ์๋ Fake Repository๋ฅผ ์ฌ์ฉํ๋ค.
- Fake๋ฅผ ์ฌ์ฉํ๊ธฐ ์ด๋ ค์ธ ๊ฒฝ์ฐ์๋ง Mock ์ ์ฌ์ฉํ์ฌ ํ ์คํธํ๋ค.
- ํ๋ฉด๋ณ Portrait, Landscape ํ ์คํธ๋ ํ์๋ค.
- ์ค์ ๋์๊ณผ ์ ์ฌํ ๋์์ ํ๊ธฐ์ ์ ๋ขฐ์ฑ ์๋ ํ ์คํธ๋ฅผ ์ ๊ณต
- Unit Test ์ Android Test ์์ ์ฌ์ฌ์ฉ๋ ์ ์์
Fake ๊ฐ์ฒด๋ testing ๋ชจ๋ ์ ๋ชจ์๋์์ต๋๋ค.
๊ตฌ๋ถ | Fake ๊ฐ์ฒด | Mock ๊ฐ์ฒด |
---|---|---|
์ ์ | Product ๊ฐ์ฒด๋ฅผ ๋ชจ๋ฐฉํ ๊ฐ์ฒด๋ก, ์ค์ ๋์์ ๋จ์ํํ ๊ตฌํ์ฒด | ํน์ ํ๋์ด ์ผ์ด๋ฌ๋์ง ๊ฒ์ฆํ๊ธฐ ์ํ ๊ฐ์ฒด๋ก, ์์๋ ํธ์ถ๊ณผ ์๋ต์ ๋ฏธ๋ฆฌ ์ ์ |
์ฃผ์ฉ๋ | ์ค์ ๋์์ ๋ชจ๋ฐฉํ์ฌ ํ ์คํธ์ ์ถฉ์ค๋์ ์ ๋ขฐ์ฑ์ ๋์ | ํ๋ ๊ฒ์ฆ (Behavior Verification) |
์ฅ์ | - ๋์ ํ
์คํธ ์ถฉ์ค๋ - ๋ค์ํ ํ ์คํธ ํ๊ฒฝ์์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅ - ๊ฐ์ฒด์ ๋ด๋ถ ์ฝ๋๋ฅผ ์ ๊ฒฝ ์ฐ์ง ์๊ณ ์ฌ์ฉ ๊ฐ๋ฅ (์ถ์ํ, ์บก์ํ) |
- ํ
์คํธ ์ ํธ์ถ๋ ๋ฉ์๋์ ๊ทธ ์์๋ฅผ ๊ฒ์ฆ ๊ฐ๋ฅ - ํ ์คํธ ์ผ์ด์ค๊ฐ ๋ช ํํ๊ณ ๊ตฌ์ฒด์ ์ |
๋จ์ | - ํ๋ก๋ํธ ์ฝ๋๊ฐ ๋ณ๊ฒฝ๋๋ฉด Fake๋ ๋ณ๊ฒฝ๋์ด์ผ ํจ (์ ์ง๋ณด์ ๋น์ฉ ์ฆ๊ฐ) - Fake๋ ์ค์ ์ฒ๋ผ ๋์ํ๋์ง ํ ์คํธ ํ์ |
- ์์๋ ํธ์ถ๊ณผ ์๋ต์ ๋ฏธ๋ฆฌ ์ ์ํด์ผ ํ๋ฏ๋ก ์ค์ ์ด ๋ฒ๊ฑฐ๋ก์ - ํ ์คํธ๊ฐ Mock ๊ฐ์ฒด์ ์์กดํ๊ฒ ๋์ด ์ ์ฐ์ฑ์ด ๋จ์ด์ง ์ ์์ |
์ฌ์ฉ ์ฌ๋ก | - DB๋ Server ์์ ์์กด์ฑ์ ์ ๊ฑฐํ๊ณ ๋
๋ฆฝ์ ์ธ ViewModel ํ
์คํธ ์ํ |
- ํน์ ๋ฉ์๋๊ฐ ํธ์ถ๋์๋์ง ๊ฒ์ฆ์ด ํ์ํ ๊ฒฝ์ฐ |