PPP3: WebTestを使った機能単体テスト
ユニットテストが終わったら、コンポーネントを結合して機能をテストする
WSGIとは、Web Server Gateway Interfaceの略で、PythonのWebアプリと
Webサーバの間のインタフェースを定義したもの
WebTestはWebサーバのふりをしてWebアプリを呼び出してレスポンスを
受け取っているというわけだな
どんなインタフェースなんだろうか
requestを引数にとってレスポンスを返すだけの関数に@wsgifyとつけると
アプリになる、ってくらい?
しかし調べないで進む
- HTMLのレスポンスは変わりやすいので、出力されるべき文字列が含まれているかどうか程度のテストに留める
- 外部システムの呼び出しはモックにする
ところでこのへんのサンプルコードはテスト用のアプリがないと動かないよね?
というのはLIST8.36のmock_account
ってやつがどこから出てきたのかわからない
これで動くんだろうか
そのへんはちょっと明確にしておいてほしい
雰囲気がわかればいいサンプルだから適当に・・・てことはないと思うけど
- 認証情報は
environ['REMOTE_USER']
に置くことが多い - WebTestはクッキーにも対応しているのでセッションに関わるテストも実行可能
ここのサンプルを見るかぎり、最小のWSGIアプリはこんな感じ?
これをWSGIなWebサーバに食わせればWebアプリができるのかな?
from webob.dec import wsgify
@wsgify
def myapp(request):
return "hello, world!"
そのうち出てくるだろうからそのときに理解しよう