2016-05-03 6 views
2

ファイル:JAVAのプロパティファイルでregexを使用できますか?私はプロパティに格納されたテキストを主張しようとしています

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); 

実際には、私がactual.getText()

を使用し、私のウェブサイトからのテキストを与えるWebElementです

これは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); 
    } 
} 

最終的な結果は、私が

比較の失敗を取得していますということです。

これはさえ可能であるか、私は単に何かをしないのですかどうかわかりませんか?

+1

'のassertEqualsがありますが代わりに正規表現文字列を格納し、あなたを停止するには何もないですが、 'メソッドは正規表現にマッチしようとしません - あなたは別のアサーションを使わなければなりません。 – jsheeran

+0

プロパティキーを正規表現としてマークし、それらをパターンとしてロードしようとするロジックを追加して、 'assertTrue'などを呼び出してパターンを与えられた' String'と一致させることができます。 – Mena

+0

assertTrue(testString.matches(regex))のようなものを使うことができます。 Btw、\ dは1桁にしか一致しないので、\ dはそれをカットしません。 \ d +または\ d {4}を使用する必要があります... – mtj

答えて

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() 
); 
+0

ありがとうニコラス、これは魅力のように動作します:) – Dragan

関連する問題