8

我在我的 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]>

看起来正则表达式只是一个正在比较的字符串。我错过了什么?

4

2 回答 2

15

看起来您实际上并没有使用正则表达式。似乎这就是你想要做的?

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

编辑#1:

似乎您的正则表达式可能不太正确,请尝试:

Assert.assertTrue(driver.getTitle().matches(".*TST-\\d{5}.*"));
于 2010-12-02T00:02:17.993 回答
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)

于 2010-12-02T00:07:37.743 回答