2010-12-01 16 views
7

assertEquals()ステートメントでregexpを使用する際に問題があります。これが声明です。assertEquals()でregexpを使用しても動作しません

Assert.assertEquals("regexp:*TST-*[0-9]{5}", driver.getTitle()); 

しかし、私はこのエラーを取得する:

org.junit.ComparisonFailure: expected:<[regexp:*TST-*[0-9]{5}]> but was:<[[#TST-23570] This is the new summary]> 

正規表現が比較されているだけの文字列であるように見えます。私は何が欠けていますか?

+2

を? – Falmarri

+0

@Falmarri - 私は同じことを思っていた:)(+1) – javamonkey79

+0

私はちょうど私に休憩を与えることを学んでいる。 – John

答えて

10

実際にのように見えません。正規表現を使用しています。これはあなたがやろうとしていることかもしれませんね?

Assert.assertTrue(driver.getTitle().matches("*TST-*[0-9]{5}")); 

EDIT#1:

Assert.assertTrue(driver.getTitle().matches(".*TST-\\d{5}.*")); 
+0

ありがとう、それは素晴らしい作品です。私が必要としたのは一例でした。今私はそれを得る。 – John

+0

あなたが必要としていたものであれば、この回答を上書きして受け入れますか?ありがとう:) – javamonkey79

0

次の2つの文字列が同じである主張している:

また、あなたの正規表現は非常に適切でないかもしれないように、してみてください思えます。あなたの場合、あなたのタイトルが "regexp:TST- [0-9] {5}"と等しく、正規表現ではないことを確認しようとしています。

あなたは多分これやりたい:「正規表現:」のassertEqualsであなたはあなただけを使用することができるという事実を見ました

assert_true(driver.getTitle().matches("*TST-*[0-9]{5}")); 

http://cupi2.uniandes.edu.co/javadoc/j2se/1.5.0/docs/api/java/lang/String.html#matches(java.lang.String)

関連する問題