python - 如果在 Python 中引发并处理异常,测试用例会失败?

标签 python unit-testing automated-tests python-unittest

看一下下面的测试用例:

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中写的很多测试用例的测试用例,现在运行它来检查数据库的连接是否已连接。

如果是,则传递“数据库版本号”。

如果没有,那么它会抛出异常,我已经处理了。

运行此其余案例后,测试案例在我使用的任何测试框架(Robot、unittest、pytest)中都显示通过。

但是,我希望这个测试用例失败,因为它不是我正在寻找的结果。

处理异常,因为我想看到唯一的错误消息,而不是所有那些红线异常。

我愿意接受任何类型的建议,无论是否涉及删除异常。

最佳答案

通过测试的行为是预期的。只有当您收到某些断言中未预期的结果时,测试才会失败。

在您的情况下,如果您希望引发异常,您应该使用:

self.assertRaises(cx_Oracle.DatabaseError, self.version())

如果您想检查版本是否正确,请使用:

self.assertEqual(XXX, self.version())

其中XXX是您期望的self.version()的值

关于python - 如果在 Python 中引发并处理异常,测试用例会失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52517732/

相关文章:

python - TensorFlow Estimators 中的 'batches' 和 'steps' 是什么?它们与 epoch 有何不同?

Angular2 测试组件是否有正确的选择器

java - 如何使用Gradle覆盖android测试路径?

javascript - rails : best way to test an action called remotely?

python - Pytest - 没有测试运行

javascript - ReactJS 的首选测试方法?

python - 压缩格式 block 对角矩阵的高效线性代数

python - Pandas 数据框过滤器计算

python - Pandas :根据另一个数据框中的行值计数进行转换

xcode - XCUITest 检测 UIView