如何为Hamcrest匹配器处理此错误

时间:2018-05-08 23:36:56

标签: java python unit-testing junit hamcrest

我使用Hamcrest Matcher库收到以下错误。

  

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

我正在尝试的是 示例代码

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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

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