Рассмотрим следующий тестовый пример с использованием стандартных JUnit
утверждений и hamcrest assertThat
:
byte b = 0;
int i = 0;
assertEquals(b, i); // success
assertThat(b, equalTo(i)); // java.lang.AssertionError: Expected: <0> but: was <0>
if (b == i) {
fail(); // test fails, so b == i is true for the JVM
}
Почему это так? Значения, по-видимому, равны для JVM, потому что b == i
- true
, поэтому почему hamcrest
терпит неудачу?