Android

Android ํ…Œ์ŠคํŠธ

JUnit, Espresso, ๋‹จ์œ„ ํ…Œ์ŠคํŠธ, ๊ณ„์ธก ํ…Œ์ŠคํŠธ, ์–ด์„ค์…˜

28 ๋ฉด์ ‘ ์งˆ๋ฌธยท
Junior
1

JUnit์ด๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๋‹ต๋ณ€

JUnit์€ Java์™€ Kotlin์„ ์œ„ํ•œ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. ์ž๋™ํ™”๋œ ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ํ‘œ์ค€์ž…๋‹ˆ๋‹ค. JUnit 4๋Š” ์–ด๋…ธํ…Œ์ด์…˜(@Test, @Before, @After)์„ ์‚ฌ์šฉํ•˜์—ฌ ํ…Œ์ŠคํŠธ์™€ ๋ผ์ดํ”„์‚ฌ์ดํด์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. JUnit ํ…Œ์ŠคํŠธ๋Š” Android ์—๋ฎฌ๋ ˆ์ดํ„ฐ ์—†์ด ๋กœ์ปฌ JVM์—์„œ ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋น ๋ฆ…๋‹ˆ๋‹ค.

2

@Test ์–ด๋…ธํ…Œ์ด์…˜์€ ๋ฌด์—‡์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๊นŒ?

๋‹ต๋ณ€

@Test๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”์„œ๋“œ๋Š” ํ…Œ์ŠคํŠธ ๋Ÿฌ๋„ˆ์— ์˜ํ•ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. @Test๊ฐ€ ์—†์œผ๋ฉด ๋ฉ”์„œ๋“œ๋Š” ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ: @Test fun testAddition() { assertEquals(4, 2 + 2) }. ๊ฐ @Test๋Š” ๋…๋ฆฝ์ ์ด์–ด์•ผ ํ•˜๋ฉฐ ์‹คํ–‰ ์ˆœ์„œ์— ์˜์กดํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

3

@Before ์–ด๋…ธํ…Œ์ด์…˜์€ ๋ฌด์—‡์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๊นŒ?

๋‹ต๋ณ€

@Before๋Š” ๊ฐ ํ…Œ์ŠคํŠธ(@Test) ์ „์— ์‹คํ–‰๋˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๊ณตํ†ต ๊ฐ์ฒด ์ดˆ๊ธฐํ™”, ๋ชฉ ์ƒ์„ฑ, ์ƒํƒœ ์žฌ์„ค์ •์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ: @Before fun setUp() { viewModel = MyViewModel() }. ํ…Œ์ŠคํŠธ๊ฐ€ 5๊ฐœ ์žˆ์œผ๋ฉด @Before๋Š” 5๋ฒˆ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ๋Œ€์•ˆ: @BeforeClass๋Š” ๋ชจ๋“  ํ…Œ์ŠคํŠธ ์ „์— ํ•œ ๋ฒˆ๋งŒ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

4

@After ์–ด๋…ธํ…Œ์ด์…˜์€ ๋ฌด์—‡์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๊นŒ?

5

ํ…Œ์ŠคํŠธ์—์„œ ์–ด์„ค์…˜์ด๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

+25 ๋ฉด์ ‘ ์งˆ๋ฌธ

๊ธฐํƒ€ Android ๋ฉด์ ‘ ์ฃผ์ œ

Android ๊ธฐ์ดˆ

Junior
24๊ฐœ ์งˆ๋ฌธ

Android UI ๋ฐ ๋ฆฌ์†Œ์Šค

Junior
30๊ฐœ ์งˆ๋ฌธ

Android ์ƒ๋ช…์ฃผ๊ธฐ

Junior
30๊ฐœ ์งˆ๋ฌธ

Android ๋‚ด๋น„๊ฒŒ์ด์…˜

Junior
26๊ฐœ ์งˆ๋ฌธ

Android ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ

Junior
29๊ฐœ ์งˆ๋ฌธ

Android ๋„คํŠธ์›Œํ‚น

Junior
29๊ฐœ ์งˆ๋ฌธ

Android Gradle

Junior
26๊ฐœ ์งˆ๋ฌธ

Android๋ฅผ ์œ„ํ•œ Kotlin ์–ธ์–ด ๊ธฐ์ดˆ

Junior
24๊ฐœ ์งˆ๋ฌธ

Room Database

Mid-Level
25๊ฐœ ์งˆ๋ฌธ

๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ž‘์—…

Mid-Level
18๊ฐœ ์งˆ๋ฌธ

Jetpack Compose

Mid-Level
28๊ฐœ ์งˆ๋ฌธ

๊ถŒํ•œ ๋ฐ ๊ธฐ๊ธฐ ๊ธฐ๋Šฅ

Mid-Level
21๊ฐœ ์งˆ๋ฌธ

Android์šฉ Firebase

Mid-Level
23๊ฐœ ์งˆ๋ฌธ

Android MVVM Architecture

Mid-Level
18๊ฐœ ์งˆ๋ฌธ

Android ๋„คํŠธ์›Œํ‚น ๊ณ ๊ธ‰

Mid-Level
13๊ฐœ ์งˆ๋ฌธ

Kotlin ์ปฌ๋ ‰์…˜๊ณผ ์—ฐ์‚ฐ์ž

Mid-Level
20๊ฐœ ์งˆ๋ฌธ

Kotlin Coroutines์™€ Flow

Mid-Level
20๊ฐœ ์งˆ๋ฌธ

Android ์˜์กด์„ฑ ์ฃผ์ž…

Mid-Level
15๊ฐœ ์งˆ๋ฌธ

Android MVI Architecture

Mid-Level
17๊ฐœ ์งˆ๋ฌธ

Android Clean Architecture

Senior
21๊ฐœ ์งˆ๋ฌธ

Android Compose ๊ณ ๊ธ‰

Senior
17๊ฐœ ์งˆ๋ฌธ

Android Performance and Monitoring

Senior
13๊ฐœ ์งˆ๋ฌธ

Android Security and Privacy

Senior
18๊ฐœ ์งˆ๋ฌธ

Android CI/CD and Release

Senior
15๊ฐœ ์งˆ๋ฌธ

Android UX and Form Factors

Senior
18๊ฐœ ์งˆ๋ฌธ

Android Testing Advanced

Senior
18๊ฐœ ์งˆ๋ฌธ

๋‹ค์Œ ๋ฉด์ ‘์„ ์œ„ํ•ด Android์„ ๋งˆ์Šคํ„ฐํ•˜์„ธ์š”

๋ชจ๋“  ์งˆ๋ฌธ, flashcards, ๊ธฐ์ˆ  ํ…Œ์ŠคํŠธ, ์ฝ”๋“œ ๋ฆฌ๋ทฐ ์—ฐ์Šต, ๋ฉด์ ‘ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์— ์ ‘๊ทผํ•˜์„ธ์š”.

๋ฌด๋ฃŒ๋กœ ์‹œ์ž‘ํ•˜๊ธฐ