【问题标题】:How do I handle this error for Hamcrest matcher如何为 Hamcrest 匹配器处理此错误
【发布时间】:2018-05-08 23:36:56
【问题描述】:

我在使用 Hamcrest Matcher 库时遇到以下错误。

“Assert类型中的方法assertThat(T, Matcher)不适用于参数(List, AnyOf)”

我正在尝试的是 示例代码

List<String> poster_path_image2;         
assertThat(poster_path_image2, anyOf(startsWith("https:"), startsWith("null")));

我需要检查一个 url 是否有效并且 null 值是否也可以接受。 我是这个库的新手,被这个错误难住了。

【问题讨论】:

  • poster_path_image2的类型是什么?

标签: java python unit-testing junit hamcrest


【解决方案1】:

看起来poster_path_image2 的类型是List。但是匹配器startsWith 可以在String 上工作。检查变量的类型以及匹配器能够处理的内容。

也许您想获取 List 的第一个元素,或者对列表中的每个项目重复断言。

String path = "your test String";       
assertThat(path, anyOf(startsWith("https:"), is(nullValue())));

我更改了第二个匹配器,因为我认为您想要检查您的字符串是否为null,而不是它是否包含字符串值"null"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-07
    • 1970-01-01
    • 2015-09-15
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多