【问题标题】:How to assert that a function call does not return an error with unittest?如何断言函数调用不返回单元测试错误?
【发布时间】:2016-07-08 15:00:46
【问题描述】:

无论如何,unittest 是否只是断言函数调用不会导致错误,无论是 TypeError、IOError 等。

示例:

assert function(a,b) is not error

if not assertRaises function(a, b)

最好的方法是什么(不使用类)?我遇到的麻烦是我在单元测试中遇到的所有有用文档都是基于类的,我不想使用基于类的。

完整示例:

def test_validate_params():
    assert test.validate_params('hackenv-re', 'test.username') is not errors
    assert test.validate_params('fakeenv', 'test.username') is error
    assert test.validate_params('hackevn-re', 'vagrant') is error
    counter += 1
    print "Test Passed {0}/5: validate_params".format(counter)

【问题讨论】:

  • 你有想要测试的代码示例吗?根据您的方法的外观,有不同的方法可以做到这一点。
  • 我已经准备好了一切,我只是想调整我在示例中粘贴的行。这只是一个函数调用 test(a,b)
  • 如果不了解您的测试方式,就很难确定最佳方法。例如这里。如果我要测试它没有引发,我将确保代码返回“stuff”。这样我就知道它没有断言。
  • 哦,我明白了,我已经更新了帖子

标签: python unit-testing assert


【解决方案1】:

如果您的函数引发异常,则测试将失败。无需进行任何额外检查。如果你绝对想要,你可以这样做:

try:
    function_under_test()
except Exception as e:
    self.fail("Unexpected exception %s" % e) 

(假设标准 Python 单元测试)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-20
    • 2013-08-03
    • 1970-01-01
    • 2020-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多