/quarkus-mockk

Mockk Quarkus Extension

Primary LanguageKotlinApache License 2.0Apache-2.0

Quarkus JUnit5 MockK Extension

GitHub Actions Workflow Status Version License

Description

This Quarkus JUnit5 MockK extension allows you to easily inject MockK mocks.

The full documentation be found here.

Importing the dependency

First of all, you need to add the following dependency:

<dependency>
    <groupId>io.quarkiverse.mockk</groupId>
    <artifactId>quarkus-junit5-mockk</artifactId>
    <version>LATEST</version>
    <scope>test</scope>
</dependency>

If you are using gradle:

dependencies {
    testImplementation 'io.quarkiverse.mockk:quarkus-junit5-mockk:LATEST'
}

Compatibility with Quarkus

Starting with version 3.8+, version 3+ of quarkus-junit5-mockk should be used. If you use a version between ˋ3.0.0, and before 3.8.0, version 2.0.0ofquarkus-junit5-mockkshould be used. If you use a version between2.8and before3.0.0, version 1.1.0ofquarkus-junit5-mockkshould be used. If you use a version before2.7, version 1.0.1ofquarkus-junit5-mockk` should be used.

Example

Now, you can use @InjectMock and @InjectSpy in your test such as:

@QuarkusTest
class InjectionMockTest {

    @Inject
    private lateinit var firstService: FirstService

    @InjectMock
    private lateinit var secondService: SecondService

    @Test
    fun `should respond test`() {
        every { secondService.greet() } returns "test"
        assertThat(firstService.greet()).isEqualTo("test")
    }

    @Test
    fun `should respond second`() {
        every { secondService.greet() } returns "second"
        assertThat(firstService.greet()).isEqualTo("second")
        verify { secondService.greet() }
    }
}