我正在尝试断言存储在属性文件中的一些文本:
Text=\
some text\n\
to be\n\
asserted\n\
based on 1567 ratings
1567变化所以我想确保它被正则表达式替换,它会说这可以是使用\ d或\ d的任何数字,因为我必须在属性文件中转义\。
所以我尝试使用
Text=\
some text\n\
to be\n\
asserted\n\
based on \\d ratings
这是我用来断言的方法:
Assert.assertEquals(PropertyLoader.loadProperty("filename.properties", "Text"),actual);
实际是一个WebElement,它为我提供了网站上的文字,我使用了actual.getText()
这是具有loadProperty方法的类
class PropertyLoader {
static String loadProperty(String file, String name) {
Properties props = new Properties();
try {
props.load(getResourceAsStream(file));
} catch (IOException e) {
e.printStackTrace();
}
return props.getProperty(name);
}
}
最终结果是我得到了
比较失败:
Expected:
some text
to be
asserted
based on \d ratings
Actual:
some text
to be
asserted
based on 1567 ratings
不确定这是否可能,或者我只是遗漏了什么?
答案 0 :(得分:1)
首先,属性文件的内容应为:
Text=\
some text\n\
to be\n\
asserted\n\
based on \\d+ ratings
然后你的测试用例将是:
Assert.assertTrue(
Pattern.compile(
PropertyLoader.loadProperty("filename.properties", "Text"),
Pattern.MULTILINE
).matcher(actual).matches()
);