在assertEquals()中使用regexp不起作用

时间:2010-12-01 23:54:39

标签: java regex selenium assert selenium-webdriver

我在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 个答案:

答案 0 :(得分:11)

看起来你实际上正在使用正则表达式。看起来这可能是你想要做的事情吗?

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

编辑#1:

看起来您的正则表达式可能不太正确,请尝试:

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

答案 1 :(得分: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)