問題タブ [flask-testing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Flask ビューのテスト: データがデータベースに保存されないようにするにはどうすればよいですか?
初期化されたSQLAlchemyを備えたアプリがあります:
私が取り組んでいるビューは、すべてのユーザーをjson形式で返すだけです:
そして私のテスト:
私は自分のテストを実行しますFLASK_CONFIG=testing nosetests
(そして私がチェックしたところ、app.testingはtrueに設定されています)。
これを私の psql データベースに対して実行すると、データベースに追加したこれらのユーザーが保存されていることがわかりました!
これが起こらないようにするにはどうすればよいですか? 何もしないように db.session.commit() を上書きしようとしましたが、ビューを呼び出すとデータベースがロールバックします。を使用する代わりの方法はありtest_client()
ますか? jsonify
応答以外の場所にデータを返すことができないため、メソッドを直接呼び出すことはできません。
更新:ここに私の一時的な(?)解決策があります:
これで、テストで jsonify() を使用する必要がなくなりました
python - Flask test_clientでリクエスト引数を設定するには?
から特定の情報を取得する特定のビューをテストする必要がありrequest.args
ます。
ビュー内の多くのものがリクエストオブジェクトを使用しているため、これをモックすることはできません。私が考えることができる唯一の代替手段は、手動で設定することrequest.args
です。
私はtest_request_context()
、例えば、でそれを行うことができます:
このビュー内のリクエストには、設定した引数が含まれます。ただし、ビューを初期化するだけでなく、ビューを呼び出す必要があるため、これを使用します。
しかし、この方法でリクエスト引数を操作する方法がわかりません。
私はこれを試しました:
しかし、これは設定されませんrequest.args
。