我有一个烧瓶应用程序,我想运行一些单元测试。为此,我创建了一个新的Flask对象,初始化blueprints、SQLA和一些其他包,并执行测试用例。在
但是,我注意到test flask对象上的一些端点丢失了,这使我想知道在flask中如何处理初始化的一般方法。在
举一个最小的例子,端点的创建方式如下:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run()
如果我要在testcase的setUp方法中的某个地方创建一个新的Flask对象,那么它肯定不会包含路由“/”,因为这个路由是从另一个Flask对象(上面文件中的对象)创建的。所以我的问题是:测试用例应该如何编写,初始化通常是如何工作的?我在某个地方读到,应该避免在导入时初始化(即在模块级别),但如果使用注释,这似乎是不可能的。在
您不需要在测试用例中创建新的
Flask
对象。您可以导入现有的app
,而不是。在在许多项目设置中,您已经将所有扩展添加到
app
。在我的许多产品中,我都有一个工厂方法,它将获取一个配置对象并为我返回完全初始化的app
对象;我使用这个方法来创建一个基本测试用例:任何测试都可以在所有测试中使用
self.app
作为测试客户端。在这是一个基本测试用例,您可以从它继承;
^{pr2}$setUp()
方法允许设置额外的配置,方法是向super()
调用传递关键字参数:相关问题 更多 >
编程相关推荐