wwはRuby/Sinatra製のオープンソース・ソフトウェア。Web APIを使った開発の場合、自動化したテストをいかに行うかが問題になる。特にWeb APIのように他サービスのリソースを使う場合、テストで過剰アクセスするとブロックされてしまう危険もある。

ピクチャ 26.png

外部サービスを使った開発で利用

 

それを回避するにはテスト用に別途サーバを用意するのが良い。設定ファイルでテスト時や開発時にはローカルのサーバにデータを飛ばすのだ。柔軟にレスポンスデータを返すのにwwが面白そうだ。wwはSinatraで作られたダミーのWebサーバだ。

wwはレスポンスデータを設定したスクリプトを使ってサーバを立ち上げる。SinatraなのでURLの設計は容易で、レスポンスデータの設定も簡単だ。ユニットテストとも連携でき、自動的に立ち上がってテストができる。テストケースごとにサーバがリセットされる機能もある。

ピクチャ 27.png

リクエスト内容の詳細も見られる

 

「/spy」というURLでアクセスするとアクセスしたパスやメソッド、リクエストヘッダ、レスポンスデータが閲覧できる。Web APIへのリクエストが正しく行えているかの確認にもなるだろう。HTTPに限定されるがRESTfulなサービスをテストしたいときなどに便利なソフトウェアだ。

執筆時のバージョン

 0.3.0

 

moro’s ww at master - GitHub

 http://github.com/moro/ww