Android Under the Hood: Beyond Testing APIs
Series: Android Under the Hood: Beyond Testing APIs (7 Parts)
- Part 1 of 7
Testing Philosophy in Kotlin: Expect/Actual, Unit Tests, Kotest, Junit and the Nature of Test Doubles
A deep dive into the philosophical foundation of testing in Kotlin: the meaning behind expect/actual, differences between Unit and JUnit tests, and the conceptual roles of mocks, stubs, fakes, and spies. Understanding tests not as scripts, but as controlled simulations of reality.
- Part 2 of 7
Instrumented Tests Under the Hood: How Android Executes Your Code Эта статья ещё не завершена и может быть дополнена или изменена.
Exploring the internals of Android instrumented tests: from AndroidJUnitRunner and TestInstrumentationRunner to ActivityTestRule and ActivityScenario. How instrumentation interacts with your app, and what really happens when you run tests on a device or emulator.
- Part 3 of 7
Robolectric Internals: Shadow Worlds and JVM Illusions Эта статья ещё не завершена и может быть дополнена или изменена.
Uncovering the secret world of Robolectric: how shadow classes replace Android SDK calls, how JVM illusions are created to simulate the environment, and why Robolectric tests aren't true Android tests. A technical and philosophical analysis of testing illusions.
- Part 4 of 7
Espresso Synchronization and UI Control: Inside Android's Test Framework Эта статья ещё не завершена и может быть дополнена или изменена.
A deep analysis of Espresso's inner mechanics: thread synchronization, idling resources, and Looper interactions. How Espresso knows when your UI is 'idle', and the hidden challenges behind writing stable UI tests in Android.
- Part 5 of 7
Bytecode Manipulation and Control: MockK vs Mockito in Kotlin Эта статья ещё не завершена и может быть дополнена или изменена.
Exploring the bytecode hacking magic behind MockK and Mockito: how they manipulate objects, handle static calls, and break Kotlin's final restrictions. A technical journey into runtime control and the philosophy of object mocking.
- Part 6 of 7
Readable UI Tests with Kaspresso and Kakao: DSLs Beyond Espresso Эта статья ещё не завершена и может быть дополнена или изменена.
Dissecting Kaspresso and Kakao: how Kotlin DSLs improve UI test readability, why Kaspresso enhances stability, and the real value of scenario-based structures. Technical internals and design philosophy behind these frameworks.
- Part 7 of 7
Compose Test Internals: Semantics Tree and Declarative UI Verification Эта статья ещё не завершена и может быть дополнена или изменена.
A deep dive into how Compose testing works: the semantics tree, declarative UI test APIs, and the differences from traditional View tests. How Compose tests simplify UI verification but introduce new hidden challenges.