gpt4 book ai didi

java - Hamcrest:不清楚的异常消息?

转载 作者:行者123 更新时间:2023-12-02 01:22:28 25 4
gpt4 key购买 nike

虽然英语不是我的母语,但我仍然认为来自 Hamcrest 的以下错误消息是错误的。

我有以下验证方法:

private void validateReturnedCode() {

List<HTTPStatusCodes> expectedStatusCodesList = requestData.getExpectedHttpCodes().getStatusCodes();
HTTPStatusCodes actualReturnedCode = fromCode(response.getStatusCode());
assertThat(expectedStatusCodesList, hasItem(actualReturnedCode));
}

假设expectedStatusCodesList为{REDIRECT_FOUND}并且actualReturnedCode为OK。

很明显这里应该有一个异常,但我无法理解错误消息的逻辑:

java.lang.AssertionError: 
Expected: a collection containing <OK>
but: mismatches were: [was <REDIRECT_FOUND>]

如果是这样不是更好吗

java.lang.AssertionError: 
Expected: a status code one of <REDIRECT_FOUND>
but: mismatches were: [value was <OK>]

预期是收到 REDIRECT_FOUND,但实际上我收到了 OK!

如果我理解错了,你能解释一下吗?

最佳答案

assertThat() 的第一个参数方法指出,它必须是您获得的“实际”值:

assertThat

public static <T> void assertThat(T actual,
Matcher<? super T> matcher)

因此,您的 actualReturnedCode 必须位于前面。使用isIn()匹配以检查值是否在集合内:

assertThat(actualReturnedCode, isIn(expectedStatusCodesList));

关于java - Hamcrest:不清楚的异常消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57447855/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com