Выполняя некоторые тесты JUnit5 в Eclipse, у меня есть подпрограмма, которая возвращает byte[]
. Поэтому я использую assertArrayEquals
, чтобы сравнить результат. Однако вместо того, чтобы провалить тест на несоответствие (красный статус, увеличение Errors:
), тест не пройден (синий статус, увеличение Failures:
). Трассировка исключения выглядит следующим образом:
org.opentest4j.AssertionFailedError: array contents differ at index [4], expected: <105> but was: <77>
at org.junit.jupiter.api.AssertionUtils.fail(AssertionUtils.java:48)
at org.junit.jupiter.api.AssertionUtils.fail(AssertionUtils.java:36)
at org.junit.jupiter.api.AssertArrayEquals.failArraysNotEqual(AssertArrayEquals.java:434)
at org.junit.jupiter.api.AssertArrayEquals.assertArrayEquals(AssertArrayEquals.java:214)
at org.junit.jupiter.api.AssertArrayEquals.assertArrayEquals(AssertArrayEquals.java:72)
at org.junit.jupiter.api.AssertArrayEquals.assertArrayEquals(AssertArrayEquals.java:64)
at org.junit.jupiter.api.Assertions.assertArrayEquals(Assertions.java:565)
[...]
В моем конкретном случае ожидаемый результат был похож на «Миссисипи», тогда как фактический результат был «МиссМиссиппи». Так как мне правильно сформулировать тест?
Я использую JRE с -ea
, поскольку я использую утверждения.
Пример (измененный сценарий тестирования, но та же проблема):