HttpUnitをちょっと使ってみました

スポンサーリンク

HTMLを構造的にチェックできて(NekoHTML使ってるみたい)すばらしそうだけれども、Selenium使えるならばそっちの方が直感的にわかりやすいし、簡単そう。
HttpUnitだと、ブラウザ使わずにテストできるけれども、、逆にブラウザ使った方が安心な感じもします。
#HttpUnitにはRhinoが同梱されていたので、JavaScript系の確認も出来るのかも!?

あと、HttpUnitステータスコードで4xx系で返って来た際に、それを例外として返すところがちょっと使いづらいです。(自分的には)
例えば、存在しないURLに対して接続した場合、、

WebConversation conversation = new WebConversation();
WebRequest request = new GetMethodWebRequest("http://yahoo.co.jp/hogehoge");
WebResponse response = conversation.getResponse(request);

で、404が返って来たときには、それがcom.meterware.httpunit.HttpNotFoundExceptionとしてスローされます。
異常時のレスポンスのbody内容を検証したい人には使いずらいです。(そんな人いない??)

追記@2006/11/19

conversation.setExceptionsThrownOnErrorStatus(false);

としておくことで、ステータスコードで4xxが返って来ても例外を投げなくなるそうです。


それと、HttpUnitはリクエストメソッドのDELETEに対応していないとのことです。(DeleteMethodWebRequestが無い)
上記は、t-wadaさんからコメントで教えていただきました。ありがとうございました!
<<<<<<<<


RESTのようなIFをサーブレットコンテナ上で試験しようと思ったのですが、結局Jakarta Commons HttpClient(java.net.*をそのまま触るのはめんどくさい)+JUnitでやることにしました。