小编Lqu*_*yvg的帖子

如何模拟用 Python Flask route() 装饰的方法

我需要对 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)

mocking flask python-unittest

5
推荐指数
1
解决办法
2080
查看次数

标签 统计

flask ×1

mocking ×1

python-unittest ×1