Add fun <T> MockKMatcherScope.any(KClass<T>): T
#1005
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Premise
In transitioning from mockito to mockk, the one feature I've been missing is Mockito's
defaultAnswer
concept.It seems like we can actually replicate this concept in mockk using reflection, however we're blocked w/o a way to define an
any()
matcher given a KClass or KType instead of a reified type.The Change
This PR currently adds only the needed
fun any(KClass)
andfun match(Matcher, KClass)
functions to the api to open up the possibility of mockking via reflection, and avoids trying to define new dsl for declaring default answers.We also demonstrate two examples of reflective mockking. In both examples we mock a TestBuilder and tell it to always return itself. This is just to demonstrate the possibilities we'd be opening up with this change.