The fastest test suite is the one that doesn't need a device. That sounds like a testing tip, but it's really an architecture result: if your logic lives in a framework-free core behind interfaces, the vast majority of it is plain Kotlin you can test in commonTest — no emulator, no simulator, no flake. This post walks the full testing pyramid I run on KMP suites, from pure domain tests up through snapshots and performance.
Why the hexagonal core pays off in tests
CoreLib holds domain logic and port interfaces only — no Android, no platform SDKs. That single rule means a use case never touches a real network, GPS, or Bluetooth stack; it touches an interface. In tests you pass a fake. So the bulk of the suite is fast, deterministic, and lives in commonMain's sibling commonTest:
// commonTest — pure, no platform, runs on every target
class PlayabilityCalculatorTest {






