KarateのfeatureをOpenAPIから作成(ZenWave Karate IDE)
はじめに
OpenAPIの定義をDSL的に使って、Karateのfeatureを自動生成するVSCodeの拡張です。
基本的な使い方は拡張機能のサイトにある動画を見るのが分かりやすいので割愛します。
ここでは自動生成された資産についての補足です。
認可トークンのファイルの出力場所
OpenAPIで認可トークンありにすると、その辺りの資産も自動生成してくれます。
karate-auth.js に認可トークンに関する共通の設定を記述できます。
ただ、このファイルの生成先のディレクトリがプロジェクトのルートでした。
これだとfeatureからのパス指定位置としてふさわしくないため、テストコードのルートとなるディレクトリにファイルを移動させました。
デフォルトはベーシック認証になっているみたいです。
今回は認可トークンをつかったロジックなどは実装していないのでコメントアウトしました。
自動生成で出来なかったところの手直し
通常のRESTfulな仕様の範囲は特にエラーにならなかったです。
ただファイルのアップロードだけは multi-part で指定してくれなかったので修正をしました*1。
And multipart file file = {read:'test-data/FileToUpload1.txt', filename:'FileToUpload1.txt',Content-type:'mulitpart/form-data'}
Code
で作成したEEのアプリをCargoで起動して、karateのテストを動かします。
手順は、下記のリポジトリのREADMEに記載しているので、そちらを参考にしてください。
experimentation/karate-01-openapi at openapi · vermeerlab/experimentation · GitHub
さいごに
OpenAPIをちゃんとつくると、それをDSLとして色々とできるというのは非常に良いですね。
テストコードの構造化しているところとか、よく見るサンプルよりも一歩踏み込んだ感じなので色々と学びも多かったように思います。