2010-12-01 19 views
7

Ben assertEquals() ifademde regexp kullanımıyla ilgili sorunlar yaşıyorum. Bu ifade.Regexp'de assertEquals() işlevi kullanılmıyor

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

Ama bu hatayı alıyorum:

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

regexp'in sadece karşılaştırıldığında olan bir dizedir gibi görünüyor. Neyi kaçırıyorum?

+2

"Regexp'i:" Bir assertEquals içinde? – Falmarri

+0

@Falmarri - Ben de aynı şeyi merak ediyordum :) (+1) – javamonkey79

+0

Sadece öğreniyorum o yüzden bana bir mola ver. – John

cevap

10

regex kullanarak aslında konum gibi görünmüyor. Sanki yapmaya çalıştığın şey bu mu?

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

DÜZENLEME # 1:

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

Teşekkürler, bu harika çalışıyor. Tek ihtiyacım olan bir örnek. Şimdi anladım. – John

+0

İhtiyacın olan şey buysa, bu cevabı almak mı istiyorsunuz? Teşekkürler :) – javamonkey79

0

İki dizeleri aynı iddia ediyoruz:

Aynı zamanda düzenli ifade pek doğru olmayabilir gibi deneyin görünüyor. Durumunuzda, başlığınızın "regexp: TST- [0-9] {5}" olarak değil, regexp'ye eşit olup olmadığını kontrol etmeye çalışıyorsunuz.

Belki bunu yapmak istiyor

:

assert_true(driver.getTitle().matches("*TST-*[0-9]{5}")); 
size sadece kullanabilirsiniz gerçeğini gördün

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

İlgili konular