测试需要Flask应用或请求上下文的代码
我正在working outside of request context
试图访问时,session
在测试。测试需要测试的内容时,如何设置上下文?
import unittestfrom flask import Flask, session
app = Flask(__name__)
@app.route('/')
def hello_world():
t = Test()
hello = t.hello()
return hello
class Test:
def hello(self):
session['h'] = 'hello'
return session['h']
class MyUnitTest(unittest.TestCase):
def test_unit(self):
t = tests.Test()
t.hello()
回答:
如果要向你的应用程序发出请求,请使用test_client
。
c = app.test_client()response = c.get('/test/url')
# test response
如果你想它使用一个应用程序上下文测试代码(current_app,g,url_for
),推送app_context
。
with app.app_context(): # test your app context code
如果要使用请求上下文(request,session
)的测试代码,请按test_request_context。
with current_app.test_request_context(): # test your request context code
应用程序上下文和请求上下文也可以手动推送,这在使用解释器时非常有用。
>>> ctx = app.app_context()>>> ctx.push()
运行shell
命令时,Flask脚本或新的Flask cli将自动推送应用上下文。
Flask-Testing
是一个有用的库,其中包含用于测试Flask应用程序的帮助程序。
以上是 测试需要Flask应用或请求上下文的代码 的全部内容, 来源链接: utcz.com/qa/407001.html