Improve support for stubbing Result return values for synchronous and suspendable functions #576
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.
This PR fixes #573
The
CoroutineAwareAnswerhas been enhanced to properly handle stubbing of return values of type Result.I started off with the sample test cases provided in PR #574, but I've added many more tests to cover the many (hopefully all) variations of Result return values. It turns out that it depends much on the nested value of a Return whether it needs unboxing or not when passing it on into the Java code of Mockito-core.
I've tried to set up the many new tests as parameterized tests in JUnit, but with JUnit4 that turns out a bit tedious.
Things would be way easier if the project is migrated to JUnit5, so that is likely something to dive into in the near future.