I use the following code at the moment to assert on a boolean
value, however the method org.hamcrest.Matchers.is()
is deprecated.
assertThat(someValue, is(false));
Is there a simple alternative syntax to test for boolean values without resorting to assertTrue()
which gives you poor failure messages like "java.lang.AssertionError"
Edit after receiving comments/answers
My initial concerns were raised because Eclipse shows the following import statement as deprecated
https://i.stack.imgur.com/2fvDL.png
On viewing the Hamcrest API docs there are 3 overloaded variations of the is()
method, only one of which is deprecated.
Therefore, to clarify the comment from @mark and the answer from @matt, the use of is()
that I have posted above is valid and not deprecated.
is()
to equalTo()
for booleans. But they're aliases for each other.
*
instead of naming each matcher for brevity and to avoid the warning.
Number of static imports needed for .*
to 1
.
is()
only some of which are deprecated
Have you tried equalTo(T)
?
assertThat(someValue, equalTo(false));
I don't see that is(T)
is deprecated - is(Class) is deprecated however.
I had thought this was a transitive dependency issue, but it's really just a display issue in Eclipse where it marks the import as deprecated because one overloaded form is. The code should compile fine since the import will expose all forms.
The deprecated form has been removed from the source and will not exist in the next release (1.4).
Original Answer
The problem is that JUnit includes a set of Hamcrest classes in its JAR. You can use junit-dep.jar
for now, but newer versions (4.9 and 4.10 so far) of JUnit omit them.
It is said, use instanceOf
for class matcher in the document.
http://junit.org/javadoc/latest/org/hamcrest/core/Is.html#isA(java.lang.Class)
is(IOException.class);
will be
is(instanceOf(IOException.class));
for example.
This is deprecated:
import static org.junit.Assert.assertThat;
We can use this instead:
import static org.hamcrest.MatcherAssert.assertThat;
This is what worked for me in Jan 2022
import static org.hamcrest.CoreMatchers.*;
Success story sharing
is(T)
is not deprecated. I see that it's overloaded siblingis(Class<T>)
is deprecated which was leading me to believe that all uses ofis()
were deprecated.