0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【すぐにテスト環境構築】超簡易なJSONファイルを使ったMockサーバーを作った

Last updated at Posted at 2024-09-22

概要

/responses配下にJSONファイル(*.json)を置くだけで、JSONを返すMockサーバーを作成しました。(自分用)

対象者

小規模なアプリケーションのテストをしたい方、テスト環境構築にとにかく時間をかけたくない方

制限事項

とってもシンプルな構成のため、以下のケースには現状対応していません。
JSON-serverpostmanを検討してください。または、ソースコードを自由に改変していただいて構いません。

  • 200以外のステータスコード
  • BodyやHeaderに応じたレスポンスの条件分岐
  • JSON以外のレスポンス

ソースコード

git clone https://github.com/RyutaSato/mock-api.git

使い方

リポジトリをクローンし、以下のコマンドでDockerを起動します。

${PORT}はListenしたいポート番号に置き換えるか、環境変数で指定します。

# cd mock-api
# PORT=8080
docker build -t mock-api .
docker run -d -p ${PORT}:8080 -v $(pwd)/responses:/responses mock-api

Windows上でPowerShellを使用している場合

# cd mock-api
# $PORT=8080
$PWD="$((pwd).Path.Replace('\', '/'))"
docker build -t mock-api .
docker run -d -p ${PORT}:8080 -v ${PWD}/responses:/responses mock-api

responses配下はコンテナにマウントされるので、コンテナ起動中でもJSONファイルを変更することで続けてテストができます。

  • /v2/indexをテストしたい場合
    /responses配下にv2ディレクトリを作成し、その配下にindex.jsonを配置します。
    /responses/v2/index.jsonを配置します。

  • /v2をテストしたい場合
    実装方法は2つあります。

    • /responses/v2.jsonを配置します。
    • /responses/v2配下に.jsonを配置します。
  • /v2?id=123&name=jsonをテストしたい場合
    /responses配下にv2_id=123&name=json.jsonを配置します。

クエリパラメータは、?_に置き換えて指定できます。(ファイル名に?が使用できないため)

  • /v2をPOSTリクエストでテストしたい場合
    /responses配下にv2.post.jsonを配置します。

メソッドは、(path).(method).jsonの形式で指定できます。(GETのみ省略できます)

おわりに

Dockerfilemain.go合わせてコード量100行程度です。
理解するのも書き換えるのも容易なので必要に応じて改変して使ってください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?