Есть подозрение, что это из-за того, что Вы передаёте строку. И на первом же символе оно и сыпется ибо код ‘1’ меньше, чем ‘2’.
Попробуйте сравнить так: MatcherAssert.assertThat("28", lessThan("323"));
Предполагаю, что в данном случае отработает “как надо”
Creates a matcher of Comparable object that matches when the examined object is less than the specified value, as reported by the compareTo method of the examined object.