Android

Android Testing Advanced

āļāļēāļĢāļ—āļ”āļŠāļ­āļš Android āļ‚āļąāđ‰āļ™āļŠāļđāļ‡: TDD, mocking, Coroutines, Flow, Compose UI āđāļĨāļ° test coverage

18 āļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒÂ·
Senior
1

Mock, Stub āđāļĨāļ° Fake āđāļ•āļāļ•āđˆāļēāļ‡āļāļąāļ™āļ­āļĒāđˆāļēāļ‡āđ„āļĢāđƒāļ™āļāļēāļĢāļ—āļ”āļŠāļ­āļš?

āļ„āļģāļ•āļ­āļš

Mock āļˆāļ°āļ•āļĢāļ§āļˆāļŠāļ­āļšāļāļēāļĢāđ‚āļ•āđ‰āļ•āļ­āļš (āđƒāļ„āļĢāđ€āļĢāļĩāļĒāļāļ­āļ°āđ„āļĢ āļāļĩāđˆāļ„āļĢāļąāđ‰āļ‡ āļ”āđ‰āļ§āļĒāļ­āļēāļĢāđŒāļāļīāļ§āđ€āļĄāļ™āļ•āđŒāđƒāļ”) Stub āļˆāļ°āļŠāđˆāļ‡āļ„āļ·āļ™āļ„āļģāļ•āļ­āļšāļ—āļĩāđˆāļāļģāļŦāļ™āļ”āđ„āļ§āđ‰āļĨāđˆāļ§āļ‡āļŦāļ™āđ‰āļēāđ‚āļ”āļĒāđ„āļĄāđˆāļ•āļĢāļ§āļˆāļŠāļ­āļš Fake āļ„āļ·āļ­āļāļēāļĢ implement āļ—āļĩāđˆāļ—āļģāļ‡āļēāļ™āđ„āļ”āđ‰āđāļšāļšāļ‡āđˆāļēāļĒ (āđ€āļŠāđˆāļ™ repository āđƒāļ™ memory) Mock āđ€āļ™āđ‰āļ™ behavior verification, Stub āļŠāļ™āļąāļšāļŠāļ™āļļāļ™ state verification āđāļĨāļ° Fake āđ€āļ›āđ‡āļ™āļ—āļēāļ‡āđ€āļĨāļ·āļ­āļāļ—āļĩāđˆāđ€āļšāļēāđāļĨāļ°āļŠāļĄāļˆāļĢāļīāļ‡

2

āļ§āļīāļ˜āļĩāđƒāļŠāđ‰ MockK āļŠāļģāļŦāļĢāļąāļš mocking āđƒāļ™ Kotlin?

āļ„āļģāļ•āļ­āļš

MockK āđ€āļ™āđ‰āļ™ Kotlin: mockk<T>() āļŠāļĢāđ‰āļēāļ‡ double, every { ... } returns ... āļāļģāļŦāļ™āļ”āļ„āļģāļ•āļ­āļš, verify { ... } āļ•āļĢāļ§āļˆāļŠāļ­āļšāļāļēāļĢāđ‚āļ•āđ‰āļ•āļ­āļš āļĢāļ­āļ‡āļĢāļąāļš coroutines (coEvery/coVerify), relaxed mocks āđāļĨāļ°āļāļēāļĢāļˆāļąāļšāļ­āļēāļĢāđŒāļāļīāļ§āđ€āļĄāļ™āļ•āđŒāļœāđˆāļēāļ™ slot

3

TDD (Test-Driven Development) āļ„āļ·āļ­āļ­āļ°āđ„āļĢ?

āļ„āļģāļ•āļ­āļš

TDD āļ„āļ·āļ­āļāļēāļĢāđ€āļ‚āļĩāļĒāļ™ test āļāđˆāļ­āļ™āđ€āļ‚āļĩāļĒāļ™ code āđāļĨāļ°āļ—āļģāļ‹āđ‰āļģ Red‑Green‑Refactor: test āļ—āļĩāđˆāļĨāđ‰āļĄāđ€āļŦāļĨāļ§, code āļ‚āļąāđ‰āļ™āļ•āđˆāļģāđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āļœāđˆāļēāļ™, āļˆāļēāļāļ™āļąāđ‰āļ™ refactor āđ‚āļ”āļĒāđ„āļĄāđˆāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļžāļĪāļ•āļīāļāļĢāļĢāļĄ āļ›āļĢāļ°āđ‚āļĒāļŠāļ™āđŒ: coverage āļ”āļĩāļ‚āļķāđ‰āļ™, āļāļēāļĢāļ­āļ­āļāđāļšāļšāļ—āļĩāđˆāļ—āļ”āļŠāļ­āļšāđ„āļ”āđ‰āļ‡āđˆāļēāļĒāļ‚āļķāđ‰āļ™, āđ€āļ­āļāļŠāļēāļĢāļ—āļĩāđˆāļĄāļĩāļŠāļĩāļ§āļīāļ•

4

āļ§āļīāļ˜āļĩāļ—āļ”āļŠāļ­āļš Coroutines āļ”āđ‰āļ§āļĒ runTest?

5

āļ§āļīāļ˜āļĩāļ—āļ”āļŠāļ­āļš Flow?

+15 āļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒ

āļŦāļąāļ§āļ‚āđ‰āļ­āļŠāļąāļĄāļ āļēāļĐāļ“āđŒ Android āļ­āļ·āđˆāļ™āđ†

āļžāļ·āđ‰āļ™āļāļēāļ™ Android

Junior
24 āļ„āļģāļ–āļēāļĄ

UI āđāļĨāļ°āļ—āļĢāļąāļžāļĒāļēāļāļĢ Android

Junior
30 āļ„āļģāļ–āļēāļĄ

Lifecycle āļ‚āļ­āļ‡ Android

Junior
30 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļ™āļģāļ—āļēāļ‡ Android

Junior
26 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļˆāļąāļ”āļāļēāļĢāļ‚āđ‰āļ­āļĄāļđāļĨ Android

Junior
29 āļ„āļģāļ–āļēāļĄ

Networking Android

Junior
29 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļ—āļ”āļŠāļ­āļš Android

Junior
28 āļ„āļģāļ–āļēāļĄ

Android Gradle

Junior
26 āļ„āļģāļ–āļēāļĄ

āļžāļ·āđ‰āļ™āļāļēāļ™āļ āļēāļĐāļē Kotlin āļŠāļģāļŦāļĢāļąāļš Android

Junior
24 āļ„āļģāļ–āļēāļĄ

Room Database

Mid-Level
25 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļ—āļģāļ‡āļēāļ™āđ€āļšāļ·āđ‰āļ­āļ‡āļŦāļĨāļąāļ‡

Mid-Level
18 āļ„āļģāļ–āļēāļĄ

Jetpack Compose

Mid-Level
28 āļ„āļģāļ–āļēāļĄ

āļŠāļīāļ—āļ˜āļīāđŒāđāļĨāļ°āļŸāļĩāđ€āļˆāļ­āļĢāđŒāļ‚āļ­āļ‡āļ­āļļāļ›āļāļĢāļ“āđŒ

Mid-Level
21 āļ„āļģāļ–āļēāļĄ

Firebase āļŠāļģāļŦāļĢāļąāļš Android

Mid-Level
23 āļ„āļģāļ–āļēāļĄ

Android MVVM Architecture

Mid-Level
18 āļ„āļģāļ–āļēāļĄ

āđ€āļ„āļĢāļ·āļ­āļ‚āđˆāļēāļĒ Android āļ‚āļąāđ‰āļ™āļŠāļđāļ‡

Mid-Level
13 āļ„āļģāļ–āļēāļĄ

Collections āđāļĨāļ° Operators āđƒāļ™ Kotlin

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

Kotlin Coroutines āđāļĨāļ° Flow

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļ‰āļĩāļ” Dependency āđƒāļ™ 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 āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļŠāļąāļĄāļ āļēāļĐāļ“āđŒāļ„āļĢāļąāđ‰āļ‡āļ–āļąāļ”āđ„āļ›

āđ€āļ‚āđ‰āļēāļ–āļķāļ‡āļ„āļģāļ–āļēāļĄāļ—āļąāđ‰āļ‡āļŦāļĄāļ” flashcards āđāļšāļšāļ—āļ”āļŠāļ­āļšāđ€āļ—āļ„āļ™āļīāļ„ āđāļšāļšāļāļķāļāļŦāļąāļ” code review āđāļĨāļ°āļ•āļąāļ§āļˆāļģāļĨāļ­āļ‡āļŠāļąāļĄāļ āļēāļĐāļ“āđŒ

āđ€āļĢāļīāđˆāļĄāđƒāļŠāđ‰āļŸāļĢāļĩ