如何在 unnitest python 中测试异常部分

青葱年少 python 193

原文标题How to test exception part in unnitest python

我想测试我的代码的异常部分。

def main():
    try:
        logger.info("Ejecución planificada proceso Mae_CIL")
        a = ObjectA()
        a.method()
        logger.info("Success")
    except Exception as e:
        logger.error("Error: %s" % e)


@mock.patch.object(ObjectA, 'method')
def test_main(self, mock_method):
    # Case 1: Success
    mock_method.return_value = None
    main()
    self.assertEqual(1, 1)

    # Case 2: Test Exception
    mock_method.return_value = Exception
    self.assertRaises(Exception, main)

案例 1 测试主要方法。案例2测试异常但测试失败并显示此消息'Exception: Exception not raised by main_Mae_UPR'

我如何测试异常部分?

原文链接:https://stackoverflow.com//questions/71599438/how-to-test-exception-part-in-unnitest-python

回复

我来回复
  • Iguananaut的头像
    Iguananaut 评论

    如您所见,仅将return_value设置为异常不会导致引发该异常。那是因为异常没有返回——它是一个完全不同的执行上下文,几乎按照定义意味着你的函数不会返回。也可以编写一个返回异常对象(或您的示例中的类)的函数。

    你要Mock.side_effect

    2年前 0条评论