java.util.IllegalFormatFlagsException:Flags=&x27';

java.util.IllegalFormatFlagsException:Flags=&x27';,java,hamcrest,Java,Hamcrest,我正在使用hamcrest matchers比较2list List oldProductNames=(List)ConfigurationManager.getBundle() .getProperty(“产品名称”); 日志(“未分类的产品名称:+oldProductNames”); Collections.sort(oldProductNames); Reporter.log(“已排序的产品名称:“+oldProductNames”); List sortedList=getAllProd

我正在使用hamcrest matchers比较2
list

List oldProductNames=(List)ConfigurationManager.getBundle()
.getProperty(“产品名称”);
日志(“未分类的产品名称:+oldProductNames”);
Collections.sort(oldProductNames);
Reporter.log(“已排序的产品名称:“+oldProductNames”);
List sortedList=getAllProductNamesFromListing(“excludeOOS”);
日志(“按网站排序:+sortedList”);
资产(oldProductNames,包含(sortedList.toArray());
输出如下所示:

未分类的产品名称:[NEHATESTESBUNLENEW2,NEHATESTESBUNLENEW,beurre 100%天然咖啡,1公斤烤面包 noix de cajou grillées 1公斤,坚果和乳清™, 贝乌尔降噪1 kg,四粒咖啡豆,烤架 au巧克力黑巧克力,1公斤黄连木烤肉,阿曼德斯巧克力 黑巧克力烤肉店,阿曼德斯咖啡店-诺塞特斯咖啡店, 可可黑咖啡馆]


分类产品名称:[贝乌尔·阿曼德斯-诺塞特斯-卡茹,贝乌尔 1公斤阿曼烤肉,黑巧克力, 可可黑咖啡馆,咖啡馆100% naturel,咖啡豆4粒,咖啡豆1公斤, 黑巧克力烤架,黑巧克力烤架 烤肉1公斤,黄连木烤肉1公斤, 不,是关于乳清的坚果™]


按网站排序:[beurre d'amandes-noisettes-cajou,beurre 1公斤阿曼烤肉,黑巧克力, 可可黑咖啡馆,咖啡馆100% naturel,咖啡豆4粒,咖啡豆1公斤, 黑巧克力烤架,黑巧克力烤架 烤肉1公斤,黄连木烤肉1公斤, 不,是关于乳清的坚果™]

但下面是
assertThat(oldProductNames,contains(sortedList.toArray());

java.util.IllegalFormatFlagsException:标志=“”


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

您正在遵循此模式
assertThat(实际,包含(预期));

oldProductNames
包含
%
符号,将其传递到
资产时,您实际上是在传递格式说明符


因此,
java.util.IllegalFormatFlagsException
会将所述格式说明符后面的立即
空格
作为引发此异常的前导空格。

wild guess,问题可能是某个产品中的%符号names@UlugToprak,右
%
创建问题。我已经在将产品添加到列表中时放置此项工作正常。很高兴它已排序,我将发布一个答案,以澄清为什么%符号是供将来参考的问题。
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()));