[英]How to test if function raises Flask abort properly?
我正在嘗試為我的 flask 應用程序創建單元測試,它應該正確地斷言異常。
我在我想要測試的內容上附加了簡化的代碼示例。 下面的測試應該成功完成。
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)
I would simply patch the Flask abort
function and ensure it is called with the correct value, this is preferable as it only tests your code not the behaviour of Flasks abort
function which could change with future versions of Flask and break your tests.
請根據您的代碼查看下面的示例,其中還包括測試異常的示例(如果您願意這樣做)。
# 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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.