java.util.IllegalFormatFlagsException: 标志 = ' '

java.util.IllegalFormatFlagsException: Flags = ' '

我正在使用 hamcrest 匹配器来比较 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()));

输出如下:

Unsorted Product Name : [nehatestbundlenew2, nehatestbundlenew, beurre de cacahuètes 100% naturel, beurre d'amandes grillées 1 kg, beurre de noix de cajou grillées 1 kg, nuts about whey™, beurre de noisettes 1 kg, beurre de cacahuètes aux 4 graines, beurre de noisettes grillées au chocolat noir, beurre de pistache grillées 1 kg, beurre d'amandes grillées au chocolat noir, beurre d'amandes - noisettes - cajou, beurre de cacahuète à la noix de coco]


Sorted Product Name : [beurre d'amandes - noisettes - cajou, beurre d'amandes grillées 1 kg, beurre d'amandes grillées au chocolat noir, beurre de cacahuète à la noix de coco, beurre de cacahuètes 100% naturel, beurre de cacahuètes aux 4 graines, beurre de noisettes 1 kg, beurre de noisettes grillées au chocolat noir, beurre de noix de cajou grillées 1 kg, beurre de pistache grillées 1 kg, nehatestbundlenew, nehatestbundlenew2, nuts about whey™]


Sorted By Web Site : [beurre d'amandes - noisettes - cajou, beurre d'amandes grillées 1 kg, beurre d'amandes grillées au chocolat noir, beurre de cacahuète à la noix de coco, beurre de cacahuètes 100% naturel, beurre de cacahuètes aux 4 graines, beurre de noisettes 1 kg, beurre de noisettes grillées au chocolat noir, beurre de noix de cajou grillées 1 kg, beurre de pistache grillées 1 kg, nehatestbundlenew, nehatestbundlenew2, nuts about whey™]

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

的错误

java.util.IllegalFormatFlagsException: Flags = ' '

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

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

因此,java.util.IllegalFormatFlagsException 将紧跟在所述格式说明符之后的直接 space 作为前导 space,导致抛出此异常。