单元测试烧瓶应用程序:如何处理AssertionErrors?

时间:2017-11-10 10:48:30

标签: python unit-testing flask

这是我的test_server.py文件:

from flask_testing import TestCase
class TestServer(TestCase):

    def create_app(self):
        import server
        app = server.run()
        return app

    def test_1(self):pass

    def test_2(self):pass

server.run通过返回app来做很多事情并结束:

import flask
app = flask.Flask(__name__)
def run():
    #many things that don't seem related to the issue
    import views
    views.run(app=app)
    return app

views.run声明了许多@ app.route端点。这是一个小例子:

import flask
def run(app):
    @app.route("/", methods=['GET'])
    def index():
        return flask.render_template('index.html')

如果我评论两个测试中的一个,一切都很顺利。如果我离开他们两个我得到:

  

AssertionError:视图函数映射正在覆盖现有的端点函数:index

根据我对其工作原理的理解,导致问题是因为views.run被调用两次。但是,我没有看到为什么它与两个调用使用的实例相同的原因。

当“手动”测试时,服务器工作正常,问题只出现在使用单元测试时。上面的代码使用了flask_testing,但我在unittest中遇到了同样的问题。

我做错了什么?

0 个答案:

没有答案