Getting started

  1. Apply the Gradle plugin and activate the helper dependency:

    plugins {
        kotlin("multiplatform")
        id("org.kodein.mock.mockmp") version "1.17.0"
    }
    
    kotlin {
        // Your Koltin/Multiplatform configuration
    }
    
    mockmp {
        usesHelper = true
        installWorkaround()
    }
  2. Create a test class that declares injected mocks and fakes:

    class MyTest : TestsWithMocks() {
        override fun setUpMocks() = injectMocks(mocker) (1)
    
        @Mock lateinit var view: View
        @Fake lateinit var model: Model
    
        val controller by withMocks { Controller(view = view, firstModel = model) }
    
        @Test fun controllerTest() {
            every { view.render(isAny()) } returns true
            controller.start()
            verify { view.render(model) }
        }
    }
    1 This is mandatory and cannot be generated. You need to run the KSP generation at least once for your IDE to see the injectMocks generated function.
    Every property annotated by @Mock, annotated by @Fake or delegated to withMocks will be reset fresh between each test.