APIを使って様々なサービスと連携するというアーキテクチャはすっかり定着した感があります。APIを使ってデータをやりとりするアプリケーションを書く機会も増えているのではないでしょうか。APIを使うアプリケーションの開発では,テストやデバッグをする際のAPIアクセスが悩みどころとなります。本物のサーバを使ったのではテストデータの初期化などに手間がかかりますし,逆にHTTPアクセス自体をスタブやモックを使って間接化してしまうとそれが本当に有効なテストなのか不安が残ってしまいます。筆者も,仕事やプライベートでのコーディングでこのような悩みに何度も遭遇しました。これらを解決するために開発したのがwwです(wwと書いて'double-web'と読みます⁠)⁠。Web)wwは,Webサービスの簡単な偽物を容易に作るためのライブラリです。次のような機能を備えています。Loungeでの紹介記事)を使って簡単なWebサービスAPIを作成できる。実際にWebサーバとして動作する。アプリケーション側でHTTPライブラリに細工する必要がない。対象となる外部サービスとのやりとりを目視で確認できる。事前に期待するリクエストを定義したり(モック⁠)⁠,呼び出し後にリクエストを検証したり(スパイ)できる。ダブル?開発中やデバッグの際に,本番とは別のサーバを使うなどして,外部の環境に影響を与えないようにすることは一般的な開発手法の一つです。テスト駆動での開発では,自動化されたテストを使ってプログラムを繰り返し動しながら開発を進めるため,外部サービスへ影響を与えないことがとても重要なポイントとなります。そのため,これまでも外部サービスを一時的に偽装する手段として,「⁠モック」や「スタブ」といった手法が用いられてきました。この「偽装」手段は流派によって微妙に呼び方や扱いが異なります。Patterns』では,これらの名前と役割を定義しています。本稿でもこの定義に従うため,ここで簡単に説明しておきます。ダブル(Double)モックやスタブ,ダミー,スパイなど,実際の環境から切り離してテスト可能にするための手法の総称です。wwの名前も「WebのDouble」ということでここからとっています。スタブ(Stub)自動化テストからの呼び出しを単純に置き換えるための手法です。実際に呼び出されたときに,固定値など簡単な応答をします。呼ばれ方の検証などには関知しません。モック(Mock)自動化テストとコンポーネント間で,相互の呼び出しを検証するための手法です。呼ばれ方や,呼ばれる順番などを検証します。モックを定義するということは「そのテストで呼び出される」はずであることを意味します。そのため,一度も呼び出されていない場合にその旨を通知することもあります。スパイ(Spy)自動化テストから呼び出されたことを事後に検証するための情報をとっておく手法です。簡単な応答をしたあとに,実際の呼ばれ方も検証したい場合に使います。詳しい情報は,以下のURLから入手できます。API著者プロフィール諸橋恭介(もろはしきょうすけ)(株)永和システムマネジメントサービスプロバイディング事業部所属,Rails勉強会@東京を主催。RubyやRailsを使った受託開発に従事。CucumberやRSpecを使って,楽しくテスト駆動開発を行いたいと思っている。183の技」(共著・ソフトバンククリエイティブ)がある。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。