WireMock とは?
Web サービスをスタブ、モック化するライブラリです。
モックサービスが色々有る中での導入メリットは以下
①期待値の記述から、応答条件まで一つの Json ファイルで完結できる。
②初期搭載されている Swagger で画面上からどんなモックがあるかの確認等が可能
※ Swagger とは?
とりあえずこちらだけ読んでおけばなんとなくどういうものかわかるかと
簡単に言えば画面上で用意された API が見れる的なやつです。
導入方法
環境
・Mac OS 10.14.5
Homebrew が対応しているので下記コマンドでOK
$ brew install wiremock-standalone
ちなみに Docker を使う場合は中々面白そうな Image があるのでそれを使ってみるのもイイね!
・holomekc/wiremock-gui
wiremock を GUI で操作、作成することができるみたい
インストールが終わったら起動してみましょう。ここも homebrew にお任せ
$ wiremock start
実践
さて、導入メリットの②の画面を早速開いてみましょう。以下をブラウザに。
http://localhost:8080/__admin/docs
下の Swagger UI をクリック
こんなふうに、最初からある程度の API が用意されています。
種類はそこそこあり、設定値を一覧できたり削除できたりと使い勝手は悪くなさそう。
具体的な紹介はまたの機会に。
兎にも角にもとりあえず Mock を作ってみましょう。
上の図中段の、 POST /__admin/mappings
をクリック
するとサンプルが
とりあえずこれを使わせてもらいましょう。
画面右上の Try it out
をクリック
先程のサンプルが中段の枠に記載されていますね。
これはそのままで下段の Execute
をクリック
実際に投げた curl とその応答値があります。
成功したようなので確認してみましょう。
上に画面をスクロールして今度は GET /__admin/mappings
をクリック
これは登録されている Mock を取得する API です。
先程 POST した内容が登録されていますね。
試しに呼び出してみましょう。
http://localhost:8080/some/thing
先程 body に設定した文字列が返ってきているのを確認できました。
〆
今回はざっくり概要を触りました。
ちなみにですが勿論今回後半でやった Mock の登録や参照は curl などでターミナル等から実行可能です。
実際には期待値も応答条件も詳しく記載することができますが、それはまた今度
サッとテストするには中々手軽ですので良い感じではないでしょうか。
ではまた次回
参考文献
・公式ドキュメント
Wiremock
・導入手順
WireMockサーバーの導入手順
・使い方 簡単でかつわかりやすい
WireMockをスタンドアローンで使うときの基本的なメモ