先日、slim3-1.0.6がリリースされました。たくさん機能追加がありますが、最近の自分的に嬉しい機能のひとつにController内でInputStreamが使えるissue62への対応があります。
Support for Controller#createRequestHandler():この機能を使用する際のテストケースの書き方の例を書いておこうと思います。あと、ついでにMetaクラスにJson->Model、Model->Jsonを行うユーティリティメソッドが追加されているのでそれも使っています。@takawitterさんの仕事です、ありがとうございます、便利です。
http://code.google.com/p/slim3/issues/detail?id=62
まずはController
Httpメソッドとリクエストパラメータによって追加・修正・削除と1件返却、リスト返却を実装しているだけのシンプルなものです。ポイントはControllerではなくSimpleControllerクラスを継承している点と、asString()は使わずrequest.getParameter()でパラメータを取得するという点と、ModelMetaクラスのJson用ユーティリティメソッドが便利という点です。
ControllerをテストするControllerTest
ServletInputStream
を実装したJsonInputStream
というクラスを用意し、MockHttpServletRequest#setInputStream()
に設定することでControllerへのpayloadを設定しています。
issue62とJson用ユーティリティメソッドのおかげでjsonをやりとりするControllerが一気に作り易くなって、かなーり助かります。ただ、jsonArrayToModels()
やmodelsToJsonArray()
が無いのがちょっと勿体無いかな?
0 件のコメント:
コメントを投稿