2010-12-01 20 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

"정규 표현식 :"는 assertEquals에? – Falmarri

+0

@Falmarri - 나는 똑같은 것을 생각하고 있었다 :) (+1) – javamonkey79

+0

나는 방학을 배웠다. – John

답변

10

실제로 당신이 정규 표현식을 사용하는 것처럼 보이지 않습니다. 아마도 이것이 당신이하려는 일일 것 같습니다.

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

수정 # 1 :

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

고마워, 그거 훌륭해. 내가 필요한 것은 하나의 예입니다. 이제 알겠다. – John

+0

그게 당신이 필요로하는 것이고 upvoting 및 \ 대답을 수락 하시겠습니까? 감사 :) – javamonkey79

0

을 당신은 두 개의 문자열이 같은 주장하고 있습니다 :

그것은 또한 당신의 정규식 꽤 잘되지 않을 수도 있습니다처럼 시도 보인다. 귀하의 경우 제목이 "regexp : TST- [0-9] {5}"이고 정규 표현식이 아닌지 확인하려고합니다.

당신은 어쩌면이 작업을 수행 할 수

:

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)