我正在使用Hamcrest Matchers比较2个list<String>

List<String> oldProductNames = (List<String>) ConfigurationManager.getBundle()
            .getProperty("productName");

Reporter.log("Unsorted Product Name : " + oldProductNames);
Collections.sort(oldProductNames);
Reporter.log("Sorted Product Name : " + oldProductNames);

List<String> sortedList = getAllProductNamesFromListing("excludeOOS");
Reporter.log("Sorted By Web Site : " + sortedList);

assertThat(oldProductNames, contains(sortedList.toArray()));


输出看起来像:


  未分类的商品名称:[nehatestbundlenew2,nehatestbundlenew,beurre
  decacahuètes100%naturel,百慕达烧烤1公斤,beurre de
  noix de cajou格栅1公斤,关于乳清的坚果,beurre de noisettes 1
  公斤,becare decacahuètesaux 4粒,beurre de noisettesgrillées
  黑色巧克力,1公斤贝拉德开心果格栅,阿曼德斯山脉
  诺瓦古柯黑巧克力(gouréesau chocolat noir),伯尔·达曼德斯(beurre d'amandes)-noisettes-cajou
  可可之城





  分类商品名称:[beurre d'amandes-noisettes-cajou,beurre
  d'amandesgrillées1公斤,bourre d'amandesgrilléesau chocolat noir,
  卡科维特之心,卡科维特之心,100%
  naturel,4粒beurre decacahuètesaux,1 kg beurre de noisettes,
  诺贝尔巧克力和黑巧克力
  烧烤1公斤,开心果1公斤,nehatestbundlenew,
  nehatestbundlenew2,关于乳清的坚果]





  按网站排序:[beurre d'amandes-诺森特斯-cajou,beurre
  d'amandesgrillées1公斤,bourre d'amandesgrilléesau chocolat noir,
  卡科维特之心,卡科维特之心,100%
  naturel,4粒beurre decacahuètesaux,1 kg beurre de noisettes,
  诺贝尔巧克力和黑巧克力
  烧烤1公斤,开心果1公斤,nehatestbundlenew,
  nehatestbundlenew2,关于乳清的坚果]


但低于assertThat(oldProductNames, contains(sortedList.toArray()));的错误


  java.util.IllegalFormatFlagsException:标志=''

最佳答案

使用assertThat(oldProductNames, contains(sortedList.toArray()));
您正在遵循此模式assertThat(actual, contains(expected));

oldProductNames包含%符号,当将其传递到assertThat方法时,实际上是在传递格式说明符。

结果,space紧接在所述格式说明符之后的java.util.IllegalFormatFlagsException被作为导致该异常被抛出的前导空格。

10-08 11:55