我需要对 Flask 装饰的方法是否route()被调用进行单元测试。
如果可能的话,我想在不修改被测原始代码的情况下执行此操作,因此模拟该方法将完美地满足我的要求。
因此,我要问这个关于如何模拟装饰请求方法的具体问题(我想强调这一点,以避免人们在不太具体的答案上浪费时间)...
示例应用jflask.py:
from flask import Flask
app = Flask(__name__)
app.config.from_object(__name__)
@app.route('/hello') # This method represents the code under test.
def hello(): # I want to assert that this method gets
return 'Hello, World' # called without modifying this code.
if __name__ == "__main__":
app.run()
Run Code Online (Sandbox Code Playgroud)
在单元测试中,我@patch()用来模拟该方法,以便我可以断言它被调用,但断言失败。即当我期望它时,不会调用模拟方法。
示例单元测试test_hello.py:
import unittest
import jflask
from unittest.mock import patch
class jTest(unittest.TestCase):
def setUp(self):
#jflask.app.testing = True
self.app = jflask.app.test_client() …Run Code Online (Sandbox Code Playgroud)