问题 Flask蓝图单元测试


对烧瓶蓝图进行单元测试是否有良好的做法?

http://flask.pocoo.org/docs/testing/

我没有找到帮助我的东西,或者说这很简单。

//编辑
这是我的代码:

# -*- coding: utf-8 -*-
import sys
import os
import unittest
import flask

sys.path = [os.path.abspath('')] + sys.path

from app import create_app
from views import bp


class SimplepagesTestCase(unittest.TestCase):
    def setUp(self):
        self.app = create_app('development.py')
        self.test_client = self.app.test_client()

    def tearDown(self):
        pass

    def test_show(self):
        page = self.test_client.get('/')
        assert '404 Not Found' not in page.data


if __name__ == '__main__':
    unittest.main()

在这种情况下,我测试蓝图。不是整个应用程序。为了测试蓝图,我已经添加了应用程序的根路径 sys.path。现在我可以导入了 create_app 功能...创建应用程序。我也初衷了 test_client

我想我找到了一个很好的解决方案。或者会有更好的方法吗?


2670
2017-11-13 19:19


起源



答案:


蓝图与应用程序非常相似。我想你想要测试 test_client 要求。

如果您希望将测试蓝图作为应用程序的一部分,那么看起来与应用程序没有任何差异。

如果您希望测试蓝图作为扩展,那么您可以使用自己的蓝图创建测试应用程序并对其进行测试。


7
2017-11-13 22:48



谢谢,我想我已经明白了。我很快就会发布/编辑结果。 - danbruegge


答案:


蓝图与应用程序非常相似。我想你想要测试 test_client 要求。

如果您希望将测试蓝图作为应用程序的一部分,那么看起来与应用程序没有任何差异。

如果您希望测试蓝图作为扩展,那么您可以使用自己的蓝图创建测试应用程序并对其进行测试。


7
2017-11-13 22:48



谢谢,我想我已经明白了。我很快就会发布/编辑结果。 - danbruegge


如果这有助于任何人,我做了以下。我基本上把测试文件变成了我的Flask应用程序

from flask import Flask
import unittest

app = Flask(__name__)

from blueprint_file import blueprint
app.register_blueprint(blueprint, url_prefix='')

class BluePrintTestCase(unittest.TestCase):

    def setUp(self):
        self.app = app.test_client()

    def test_health(self):
        rv = self.app.get('/blueprint_path')
        print rv.data


if __name__ == '__main__':
    unittest.main()

7
2017-09-16 21:01