我正在使用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粒,beaure de noisettesgrillées 黑色巧克力,1公斤贝拉德开心果格栅,阿曼德斯山脉 黑人巧克力味烤面包,阿曼德斯河畔伯尔-喧闹声-卡茹, 可可之城”
排序后的产品名称:[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-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,关于乳清的坚果]]
但低于assertThat(oldProductNames, contains(sortedList.toArray()));
的错误
java.util.IllegalFormatFlagsException:标志=''
答案 0 :(得分:1)
使用assertThat(oldProductNames, contains(sortedList.toArray()));
时
您正在遵循此模式assertThat(actual, contains(expected));
oldProductNames
包含%
号,当将其传递到assertThat
方法中时,实际上是在传递格式说明符。
其结果是,space
选择了紧跟在所述格式说明符之后的java.util.IllegalFormatFlagsException
作为前导空格,从而引发了此异常。