ここでは、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()
'assert' foooobarr 'in rv.data'を削除してみます。 'rv.data'を表示し、あなたが得るものを見てください。実際に 'rv.data'に' foooobarr'という文字列がありますか? 'request.form'はおそらく' RegistrationForm() 'の内部にあってはなりません。 – wgwz
デバッグモードまたはロギングを有効にし、トレースバックを見てください。 http://stackoverflow.com/questions/32722143/flask-application-traceback-doesnt-show-up-in-server-log [編集]をクリックして[mcve]を作成してください。 – davidism
はい、現在500です。しかし、このコードは私が欲しいもののアイデアを説明することに過ぎません。 – Castle