junit 升级Sping Boot 版本后的单元测试hasOnlyOneElementSatisfying()方法不起作用

svgewumm  于 2022-11-11  发布在  其他
关注(0)|答案(1)|浏览(152)

单元测试在其先前版本中运行良好,但在更新版本后显示错误

public class PersonSearchUtil {
    private final HashSet<SearchResponse> result = new HashSet<>();
    .
    .
    .
    public HashSet<SearchResponse> getResult() {
            return result;
    }
}

测试方法

@Test
fun `When person id is all zeroes, should merge`() {
    val uuid = UUID.randomUUID()
    add() {
        eeId = "same eeId"
        personId = UUID(0,0)
    }
    add() {
        eeId = "same eeId"
        personId = uuid
    }

    assertThat(service.result)
            .hasSize(1)
            .hasOnlyOneElementSatisfying { response ->.  // hasOnlyOneElementSatisfying is deprecated 
                assertThat(response.eeId).isEqualTo("same eeId")  // shows Unresolved reference: eeId 
                assertThat(response.personId).isEqualTo(uuid)  // shows Unresolved reference: personId
            }
}

错误:

未解析的引用:费用ID
未解析的引用:人员ID

pkbketx9

pkbketx91#

如javadoc中所述,应该使用singleElement()
此外,Kotlin和最新版本的AssertJ(assertj/assertj-core#2439)也存在一个已知问题。
在AssertJ中解决该问题之前,以下解决方法之一可能会解决您的问题:
第一个

相关问题