Я использую метод AssertJ extracting()
с ядром lambdas Java8 и отображает некоторые поля в BigDecimal, а затем утверждая полученный массив. Но мне нужно сравнить BigDecimal, используя compareTo()
, а не с equals()
(из-за this). Как я могу это сделать?AssertJ: как утверждать BigDecimals с помощью compareTo вместе с extracting()
Пример:
Actual actual = performTest();
Assertions.assertThat(actual)
.extracting(
Actual::getName, // returns String
Actual::getValue // returns BigDecimal
)
.containsExactly(
"abc", // ok, String equals comparison
new BigDecimal("1.1") // NOT OK, equals comparison, but I need compareTo comparison
);
Изменить: Я ищу беглом способ сделать это, потому что, конечно, я могу разделить это на несколько отличается Утверждает и сравнить его таким образом, или поместить все в один гигантский Condition
,
У меня нет ни одного 'BigDecimal' для сравнения, но часть' extracting' генерирует нечто вроде Array или Tuple of '(String, BigDecimal)'. Как бы написать другой 'has()' для String (или просто использовать нормальные значения здесь) и для 'BigDecimal'? – jhyot
В этом случае просто измените общий параметр из условия на состояние
Спасибо за редактирование. Это не компилируется, я должен использовать 'value [1]' для BigDecimal. Это становится более уродливым и уродливым;) – jhyot