在Eclipse中进行一些JUnit5测试,我有一个例程返回一个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)
[...]
在我的特定情况下,预期结果类似于“密西西比州”,而实际结果为“ MissMissppi”。那么我应该如何正确制定测试呢?
使用断言时,我正在使用-ea
运行JRE。
答案 0 :(得分:1)
数组内容在索引[4]处不同
索引[4]是什么?
"Miss[i]ssippi"
十二月:
105
十六进制:0x69
字符:"i"
"Miss[M]issppi"
十二月:
77
十六进制:0x4D
字符:"M"
AssertionFailedError
?[{
org.junit.jupiter.api.
]Assertions
是实用程序方法的集合,支持在测试中声明条件。 [...]除非另有说明,否则失败的断言将引发AssertionFailedError
或其子类。
https://junit.org/junit5/docs/snapshot/api/org/junit/jupiter/api/Assertions.html