我将 assertRaises 用于 unit test in Django

我要测试的示例方法:

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

我的测试方法:
def test_method(self):
    self.assertRaises(ExampleException, example_method, ???)

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

最佳答案

有两种方法可以做到:

  • 就像在问题中一样,但将参数 :
    def test_method(self):
        self.assertRaises(ExampleException, example_method, "some_var",
                          optional_var="not_none")
    
  • 使用 with :

    就像在 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/

    10-12 20:22