这是一个关于我如何测试Web API的极简例子。显然,我会得到500而不是预期的断言。我做错了什么?烧瓶 - 如何正确测试POST?
import unittest
from flask import Flask, request
from app.forms import RegistrationForm
app = Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def hello_world():
form = RegistrationForm(request.form)
return form.foo.data+form.bar.data
class AppTestCase(unittest.TestCase):
def setUp(self):
self.app = app.test_client()
def tearDown(self):
pass
def test_login_logout(self):
rv=self.app.post('/', data=dict(
foo='foooo',
bar='barrr'
), follow_redirects=True)
assert 'foooobarrr' in rv.data
if __name__ == '__main__':
app.run()
尝试在rv.data中删除'assert'foooobarr'。然后打印'rv.data'并看看你得到了什么。在'rv.data'中真的是'foooobarr'字符串吗?作为附注'request.form'可能不应该在'RegistrationForm()' – wgwz
的内部启用调试模式或日志并查看回溯。 http://stackoverflow.com/questions/32722143/flask-application-traceback-doesnt-show-up-in-server-log请[edit]创建[mcve]。 – davidism
是的,它目前有500个。但是这段代码只是为了说明我想要的东西。 – Castle