在Python中测试断言错误
我正在用Python做一个测试套件,代码是基于Selenium提供的。但是在检查实际页面时,我遇到了奇怪的断言错误,像这样:
sel.click("link=Overview")
sel.wait_for_page_to_load("30000")
self.assertEqual("Naaya testing - Subtitlu testare", sel.get_title())
sel.click("link=Portal properties")
sel.wait_for_page_to_load("30000")
self.assertEqual("Naaya testing - Subtitlu testare", sel.get_title())
sel.click("link=Metadata")
sel.wait_for_page_to_load("15000")
在这段代码中奇怪的是,我只在第一次出现的地方得到了断言错误。之后我把第一次出现的地方换成了:
title = sel.get_title()
self.failUnless(title == "Naaya testing - Subtitlu testare","nu sunt "
"pe pagina principala")
这样我就解决了错误,但我还是不明白为什么第二个断言没有失败,而第一个却失败了?
1 个回答
2
在Python中,当你使用 ==
这个符号时,顺序可能会影响结果。你可以试试 "Your strng" == title
,看看结果是什么。此外,assertEqual 可能会检查数据类型,所以正确的代码应该是:
self.assertEqual("Naaya testing - Subtitlu testare", str(sel.get_title()))
或者:
self.assertEqual(u"Naaya testing - Subtitlu testare", sel.get_title())
如果selenium使用的是 unicode
类型的话。