使用可选参数的方法的assertRaises

NBa*_*nca 1 python django unit-testing

我正在Django中assertRaises进行单元测试

我要测试的示例方法:

def example_method(var, optional_var=None):
    if optional_var is not None:
        raise ExampleException()
Run Code Online (Sandbox Code Playgroud)

我的测试方法:

def test_method(self):
    self.assertRaises(ExampleException, example_method, ???)
Run Code Online (Sandbox Code Playgroud)

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

NBa*_*nca 5

有两种方法:

  1. 就像在问题中,但把args

    def test_method(self):        
        self.assertRaises(ExampleException, example_method, "some_var", 
                          optional_var="not_none")
    
    Run Code Online (Sandbox Code Playgroud)
  2. with

    Python Docs中所述

    def test_method(self):
        with self.assertRaises(ExampleException):
            example_method("some_var", "not_none")
    
    Run Code Online (Sandbox Code Playgroud)