-
Notifications
You must be signed in to change notification settings - Fork 3.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add assertThrows overloads with ThrowingSupplier #1537
Closed
Closed
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
package org.junit.function; | ||
|
||
/** | ||
* Represents a supplier of results that may throw a {@code Throwable}. | ||
* | ||
* <p>This interface facilitates the use of {@link org.junit.Assert#assertThrows(Class, ThrowingSupplier)} | ||
* from Java 8 and above. It allows method references to methods without arguments (that declare checked | ||
* exceptions) to be passed directly into {@code assertThrows} without wrapping. It is not meant to be | ||
* implemented directly. | ||
* | ||
* @since 4.13 | ||
* @see org.junit.Assert#assertThrows(Class, ThrowingSupplier) | ||
* @see org.junit.Assert#assertThrows(String, Class, ThrowingSupplier) | ||
*/ | ||
public interface ThrowingSupplier<T> { | ||
T get() throws Throwable; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What if the object returned by the lambda throws an exception when you call
toString()
on it?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We don't handle that case anywhere, do we? But we should probably call
formatClassAndValue()
. I can make this change but I think we should agree whether to proceed with this PR first.@kcooney WDYT?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note that
toString()
for arrays ends up being ugly, in case the return value is an array.I addressed that in JUnit Jupiter like this: junit-team/junit5@c5c4741
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, I don't think there is any exception handling for invocations of
toString()
on objects supplied to assertion methods in either JUnit 4 or JUnit Jupiter.