Junit5: почему использование assertArrayEquals () вызывает AssertionFailedError? - PullRequest
0 голосов
/ 02 июля 2018

Выполняя некоторые тесты 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, поскольку я использую утверждения.

Пример (измененный сценарий тестирования, но та же проблема): enter image description here

1 Ответ

0 голосов
/ 03 июля 2018

Тест не пройден, как ожидалось.

содержимое массива отличается в индексе [4]

Что находится в индексе [4]?

"Miss[i]ssippi"

Dec: 105 Hex: 0x69 Char: "i"

"Miss[M]issppi"

Dec: 77 Hex: 0x4D Char: "M"

Почему происходит сбой с AssertionFailedError?

[org.junit.jupiter.api.] Assertions - это набор служебных методов, которые поддерживают утверждение условий в тестах. [...] Если не указано иное, в случае неудачного утверждения выдается AssertionFailedError или его подкласс.

https://junit.org/junit5/docs/snapshot/api/org/junit/jupiter/api/Assertions.html

...