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

ऐसा लगता है कि regexp सिर्फ एक स्ट्रिंग है कि तुलना की जा रही है। मैं क्या खो रहा हूँ?

+2

कहाँ तथ्य यह है कि तुम सिर्फ उपयोग कर सकते हैं देखा था: एक assertEquals में "regexp"? – Falmarri

+0

@ फाल्मररी - मैं वही बात सोच रहा था :) (+1) – javamonkey79

+0

मैं बस सीख रहा हूं इसलिए मुझे ब्रेक दें। – John

उत्तर

10

ऐसा लगता है कि आप वास्तव में regex का उपयोग कर रहे हैं। ऐसा लगता है कि आप ऐसा करने की कोशिश कर रहे हैं?

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

संपादित करें # 1:

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

धन्यवाद, यह बहुत अच्छा काम करता है। मुझे बस एक उदाहरण था। अब मैं समझ गया। – John

+0

यदि आपको वही चाहिए जो आपको चाहिए और आप इस जवाब को स्वीकार कर रहे हैं? धन्यवाद :) – javamonkey79

0

आप जोर देते हुए कर रहे हैं दो स्ट्रिंग्स ही कर रहे हैं:

यह भी तरह अपने रेगुलर एक्सप्रेशन से बहुत सही नहीं हो सकता है, की कोशिश लगती है। आपके मामले में आप यह जांचने की कोशिश कर रहे हैं कि आपका शीर्षक "regexp: TST- [0-9] {5}" के बराबर है, और regexp नहीं है।

आप शायद ऐसा करना चाहते हैं:

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)