Код: Выделить всё
assertThat(foo, hasProperty("bar", hasProperty("qua", is(closeTo(17.0f, 1e-5)))));
Когда я запускаю тест, он кажется неудачным, потому что getQuz возвращает число с плавающей запятой и (по крайней мере, для Hamcrest) 17.0f и 17.0 (двойное значение) — это разные типы и не могут быть closeTo.
Код: Выделить всё
is a numeric value within of ) property "quz" was a java.lang.Float ()]
Я знаю, что могу написать AssertThat(foo.getBar().getQuz(), is(closeTo(17.0, 1e-5)), а затем привести его к работе, но на самом деле запрос сложнее:
Код: Выделить всё
assertThat(..., hasItem(hasProperty(..., allOff(hasProperty(...),
hasProperty(...),
hasProperty(...)))))
Подробнее здесь: https://stackoverflow.com/questions/798 ... th-a-float
Мобильная версия