我正在尝试为我的烧瓶应用程序创建单元测试,该单元测试应正确声明异常。
我在要测试的内容上附加了简化的代码示例。以下测试应成功完成。
def my_function():
abort(400,"error")
import unittest
from werkzeug import exceptions
class Tests(unittest.TestCase):
def test_event_link(self):
self.assertRaises(exceptions.BadRequest,my_function)
unittest.main(argv=[''], verbosity=2, exit=False)
答案 0 :(得分:0)
我只需要修补Flasks abort
函数并确保使用正确的值对其进行调用,这是可取的,因为它仅测试您的代码而不是Flasks abort
函数的行为,该行为可能随着将来的变化而改变版本的Flask并破坏您的测试。
根据您的代码,请参见以下示例,其中还包括测试异常的示例(如果您愿意这样做的话)。
# code.py
from flask import abort
def my_function():
abort(400, "error")
# test.py
import unittest
from unittest.mock import patch
from werkzeug import exceptions
import code # Your code file code.py
class Tests(unittest.TestCase):
@patch('code.abort')
def test_one(self, mock_abort):
code.my_function()
mock_abort.assert_called_once_with(400, 'error')
def test_two(self):
with self.assertRaises(exceptions.BadRequest):
code.my_function()
def test_three(self):
with self.assertRaisesRegexp(exceptions.BadRequest, '400 Bad Request: error'):
code.my_function()
unittest.main(argv=[''], verbosity=2, exit=False)