JavaHamcrest icon indicating copy to clipboard operation
JavaHamcrest copied to clipboard

The matcher contains() is misleading

Open gmananton opened this issue 3 years ago • 2 comments

I found for myself that the matcher name "contains" is a bit misleading. Because it sounds similarly to contains() method of java.util.Collection it may expected to behave like this: assertThat(List.of(1,2), contains(1)) But the expression above will throw an AssertionError, because contains() is acting like containsExactly(). So how do you think about renaming it? Unfortunately the obvious problem here - is of course broken back compatibility ( If someone is using this matcher in his tests - they may have been broken and must be refactored

gmananton avatar May 18 '22 15:05 gmananton

Hi, after spending quite some time on debugging, I realized that the observed behavior stemmed from this function. That is really confusing.

PakhomovAlexander avatar May 11 '23 14:05 PakhomovAlexander

Oh guys, I feel your pain

Pochatkin avatar May 11 '23 14:05 Pochatkin