Skip to content

Latest commit

 

History

History
143 lines (124 loc) · 3.44 KB

ANDROID.md

File metadata and controls

143 lines (124 loc) · 3.44 KB
title description
MockK Android support
MockK supports regular unit tests, Android instrumented tests via subclassing(< Android P) and Android instrumented tests via inlining(≥ Android P)

mockk kotlin

Support

MockK supports:

  • regular unit tests
  • Android instrumented tests via subclassing(< Android P)
  • Android instrumented tests via inlining(≥ Android P)

DexOpener

To open classes before Android P you can use DexOpener, example

Implementation

Implementation is based on dexmaker project. With Android P instrumentation tests may use full power of inline instrumentation, so object mocks, static mocks and mocking of final classes are supported. Before Android P only subclassing can be employed and that means you need 'all-open' plugin.

Unfortunately, public CIs alike Travis and Circle are not supporting emulation of Android P because of absense of ARM Anroid P images. Hope this will change soon.

Supported features

Feature Unit tests Instrumentation test
< Android P ≥ Android P
annotations
mocking final classes can use DexOpener
pure Kotlin mocking DSL
matchers partial specification
chained calls
matcher expressions
mocking coroutines
capturing lambdas
object mocks
private function mocking
property backing field access
extension function mocking (static mocks)
constructor mocking

Installation

All you need to get started is just to add a dependency to MockK library.

Unit tests

testImplementation "io.mockk:mockk:{version}"

Android instrumented tests

androidTestImplementation "io.mockk:mockk-android:{version}"

current version

Documentation

Check full documentation here