代码之家  ›  专栏  ›  技术社区  ›  U. Windl

JUnit5:为什么使用AssertArrayEquals()会触发AssertionFailedError?

  •  -1
  • U. Windl  · 技术社区  · 8 年前

    在Eclipse中执行一些JUnit5测试时,我有一个返回 byte[]的例程。因此,我正在使用 AssertArrayEquals 来比较结果。但是,测试没有在不匹配时失败(红色状态,递增 错误: ),而是失败(蓝色状态,递增 失败: )。异常跟踪如下所示:

    org.openstest4j.assertionfailederror:array contents different at index[4],expected:<105>but was:<77>
    在Org.jUnit中。
    在Org.jUnit中。
    在Org.jUnit中,Java.API。AdvestorayRayals.FraceRaysNoDQuall(AdjtRayRayals.java:434)
    在Org.jUnit。Java.API。AdvestorayRayals.AdjtRayRayes(AdjtRayRayals.java:214)
    在Org.jUnit。Java.API。AdvestorayRayals.AdjtRayRayes(AdjtRayRayals.java:72)
    在Org.jUnit。Java.API。AdvestorayRayals.AdjtRayRayes(AdjtRayRayals.java:64)
    在Org.jUnit。木星。API。断言。AdjtRayRayes(断言。Java:565)
    […]
    
    
    

    在我的具体案例中,预期的结果就像是“密西西比”,而实际结果却是“错误的PPI”。那么,我应该如何正确地制定测试方案呢? 当我使用断言时,我正在运行jre

    示例(更改的测试方案,但存在相同的问题):=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)
    [...]
    

    在我的具体案例中,预期的结果就像是“密西西比”,而实际结果却是“错误的PPI”。那么,我应该如何正确地制定测试方案呢? 我正在运行JRE-ea当我使用断言时。

    示例(更改的测试方案,但问题相同):

    1 回复  |  直到 8 年前
        1
  •  1
  •   Sormuras    8 年前

    测试按预期失败。

    数组内容在索引[4]处不同

    索引[4]中是什么?

    "Miss[i]ssippi"

    12月: 105 十六进制: 0x69 烧焦: "i"

    "Miss[M]issppi"

    12月: 77 十六进制: 0x4D 烧焦: "M"

    为什么失败了 AssertionFailedError ?

    [ org.junit.jupiter.api. ] Assertions 是支持在测试中断言条件的实用方法的集合。除非另有说明,否则失败的断言将引发 断言失败错误 或其子类。

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