استخدام regexp في assertequals () لا يعمل
-
30-09-2019 - |
سؤال
أواجه مشاكل في استخدام regexp في بيان 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]>
يبدو أن regexp هو مجرد سلسلة تتم مقارنتها. ماذا ينقصني؟
المحلول
لا يبدو أنك في الواقع استخدام Regex. يبدو أن هذا ما تحاول فعله؟
Assert.assertTrue(driver.getTitle().matches("*TST-*[0-9]{5}"));
تحرير #1:
يبدو أيضًا أن Regex قد لا يكون صحيحًا تمامًا ، حاول:
Assert.assertTrue(driver.getTitle().matches(".*TST-\\d{5}.*"));
نصائح أخرى
أنت تؤكد أن سلسلتين متماثلين. في حالتك ، تحاول التحقق من أن عنوانك يساوي "regexp:tst-0-9] {5} "، وليس regexp.
ربما تريد أن تفعل هذا:
assert_true(driver.getTitle().matches("*TST-*[0-9]{5}"));
لا تنتمي إلى StackOverflow