Использование регулярного выражения в assertEquals () не работает - PullRequest
7 голосов
/ 02 декабря 2010

У меня проблемы с использованием регулярного выражения в моем операторе assertEquals (). Это утверждение.

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 ]

11 голосов
/ 02 декабря 2010

Не похоже, что вы на самом деле используете регулярное выражение. Кажется, может быть, это то, что вы пытаетесь сделать?

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

РЕДАКТИРОВАТЬ # 1:

Также кажется, что ваше регулярное выражение может быть не совсем правильным, попробуйте:

Assert.assertTrue(driver.getTitle().matches(".*TST-\\d{5}.*"));
0 голосов
/ 02 декабря 2010

Вы утверждаете, что две строки одинаковы. В вашем случае вы пытаетесь проверить, что ваш заголовок равен "регулярное выражение: 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)

...