2
我想斷言存儲在屬性一些文本文件:我可以在JAVA的屬性文件中使用正則表達式嗎?
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);
}
}
最終的結果是我得到
比較失敗:
不知道這甚至有可能還是我只是失去了一些東西?
沒有什麼能阻止你存儲的正則表達式字符串有代替的,但是'的assertEquals '方法不會嘗試匹配正則表達式 - 您必須使用不同的斷言。 – jsheeran
您可能會添加一些邏輯來將您的屬性鍵標記爲正則表達式值,並嘗試將它們作爲模式加載,然後在此情況下調用assertTrue等嘗試將模式與給定的String匹配。 – Mena
你可以使用類似assertTrue(testString.matches(regex))的東西。順便說一句,\ d不會削減它,因爲它只匹配一個數字。你必須使用\ d +或\ d {4} ... – mtj