python - 带有可选参数的方法的 assertRaises

标签 python django unit-testing

我正在为 unit test in Django 使用 assertRaises .

我要测试的示例方法:

def example_method(var, optional_var=None):
    if optional_var is not None:
        raise ExampleException()

我的测试方法:

def test_method(self):
    self.assertRaises(ExampleException, example_method, ???)

我应该如何传递参数以引发异常?

最佳答案

两种方式:

  1. 就像在问题中一样,但放置了 args:

    def test_method(self):        
        self.assertRaises(ExampleException, example_method, "some_var", 
                          optional_var="not_none")
    
  2. :

    Python Docs 中所述:

    def test_method(self):
        with self.assertRaises(ExampleException):
            example_method("some_var", "not_none")
    

关于python - 带有可选参数的方法的 assertRaises,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38855717/

相关文章:

python - 使用 python check out 文件(cleartool)

python - Django migrate error _mysql_exceptions.ProgrammingError : (1064, "你的SQL语法有错误

python - Django:通过manage.py使用服务器和gunicorn等其他服务器之间的区别。哪个更好?

python - 使用一个命令运行多个 Django 应用程序测试

python - 如何将多个段落从控制台写入文件 - Python

python - 允许用户在服务器上执行python代码

Django CBV - 如何检查用户的自定义属性以允许访问 View

python - 导入错误: cannot import name 'OSCAR_MAIN_TEMPLATE_DIR'

node.js - 错误: async hook stack has become corrupted in node js

unit-testing - JUnit 失败回调/方法