easymockからstubcellへ移行してみた
「チーム開発に役立つstubcell」ってタイトルでCodeGrid 2周年パーティでLTしてきた。 - from scratch
今までAPIのモック作るのにCyberAgent/node-easymock · GitHubを使っていたんだけど、最近メンテされていないっぽいし、
easymock is so simple, but it depends on sqlite3, and could not write comment in JSON file and could not validate json.
ってやつに感動してstubcellに移行した。
移行手順
installしてentry.yaml書いて終わり。簡単!
$ npm install --save-dev grunt-stubcell $ vi Gruntfile.coffee # edit gruntfile $ mv easymock mock # easymockって名前でディレクトリ作ってたので変えとく $ cd mock $ touch entry.yaml # easymockのコメントをアレする $ find . -type f -name '*.json' | xargs perl -i -pe 's{^(<|>)}{//}' # entry.yamlをカキカキ $ find . -type f -name '*.json' | perl -i -ne 'if ( /^.(.*)_(.*).json$/ ) { my ($url, $method) = ($1, uc($2)); print << "EOM" - request: url: $url method: $method response: status: 200 file: $_ EOM }' > entry.yaml # あとは手作業で:id周りを変換しまくる
雑感
気になる
- entry.yamlいちいち書くのだるそう。easymockで不要だっただけに気になる
- READMEだけじゃrecordがなにか良くわからんかったのであとで読む
- 勝手にjson作られるやつがそう?timestampみたいなレスポンスに無関係のクエリがファイル名に入った状態で生成されるので悩ましかった
- 流れるログだけだと、結局どのファイルの中身を返したのか分からないのでルーティングの確認が面倒?
- devtool見ろや、でもいいけど
- ドキュメント自動生成とかはなさそう?
- 直接ファイルみても良いけど、仕様として使うなら一覧できると嬉しそう
- 変数とか使って楽ちんにリクエストによってレスポンス変えたい、とかは無理そう