Quarkus JUnit5 MockK Extension
June 28, 2024 ยท View on GitHub
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.0 of quarkus-junit5-mockk should be used.
If you use a version between 2.8 and before 3.0.0, version 1.1.0 of quarkus-junit5-mockk should be used.
If you use a version before 2.7, version 1.0.1 of quarkus-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() }
}
}