Throw exception when ignoreCase on array #3317
Closed
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.
The documentation for assertContains() has 2 forms:
and
Some users may become confused and try to pass
$ignoreCase=true
withthe first form. In this case, PHPUnit was silently ignoring the
parameter. Rather than silently ifnoring the parameter, we should throw
an exception to alert the user that this is an invalid parameter
combination.
There is a small concern here for a backward-compatibility break. The troublesome case is where a user was passing
$ignoreCase=true
and using an array argument, but their test was passing (because the case matches). However, it still seems reasonable to warn the user that a parameter is being ignored, and the fix for the user is simple - just pass false or don't pass anything.I've added a unit test, but for clarity, here's what the output looks like:
Old Output
New Output
Sample Test Case