Issue
In Kotlin I'm using Mockito to perform unit tests in the when
method I'm trying to test my repository which extends JpaRepository which also extends QueryByExempleExecutor and from this interface I want the method findAll(Example<S> example, Pageable pageable)
which receives as its first argument the Example interface that has a generics
In Kotlin the method should work like this
`when`(repository.findAll(Mockito.any(Example<Book>::class.java), Mockito.any(PageRequest::class.java))).thenReturn(page)
however it doesn't work and the only message I have is this "Only classes are allowed on the left hand side of a class literal"
how can I use the when method passing an interface to Mockito.any() ???
Solution
You can create an extension on mockito like this:
inline fun <reified T: Any> any() = Mockito.any(T::class.java)
And then you can use it like this:
`when`(
repository.findAll(
example = Mockito.any<Example<Book>>(),
pageable = Mockito.any<PageRequest>(),
)
).thenReturn(page)
Answered By - Darryl Johnson
Answer Checked By - Timothy Miller (JavaFixing Admin)