看看下面的测试用例:
def test_1_check_version(self):
try:
self.version()
print('\n')
except cx_Oracle.DatabaseError as error_message:
print("Sorry Connection could not be established because "+str(error_message))
上面是我在Python的单元测试中编写的许多测试用例的测试用例,现在我正在运行它以检查数据库的连接是否已连接。
如果是,则它将通过“数据库版本号”。
如果没有,它将抛出一个异常,我已经处理了。
在运行此休息案例后,该测试案例在我使用的任何测试框架(机器人,unittest,pytest)中显示通过。
但是,我希望这个测试用例失败,因为这不是我想要的结果。
处理异常是因为我想查看唯一的错误消息,而不是所有那些异常的红线。
无论是否涉及删除例外,我都会接受任何建议。
答案 0 :(得分:0)
通过测试的行为是预期的。.仅当您收到某些断言未预期的结果时,测试才会失败。
对于您的情况,如果希望引发异常,则应使用:
self.assertRaises(cx_Oracle.DatabaseError, self.version())
如果要检查版本是否正确,请使用:
self.assertEqual(XXX, self.version())
其中 XXX 是您期望的 self.version()的值
答案 1 :(得分:0)
从2.7版开始:增加了使用assertRaises()作为上下文管理器的功能
所以推荐的用法是
with self.assertRaises(SomeException) as cm:
self.version()
the_exception = cm.exception
self.assertEqual(the_exception.error_code, 3)