ログインの機能があるWEBアプリのJunitを使ったAPIのテスト方法

この記事を書いたチーム:frontier

Junitとは

【エンジニア募集中】フルリモート可◎、売上/従業員数9年連続UP、平均残業8時間、有給取得率90%、年休124日以上 etc.  詳細はこちらから>

Java言語で作られたプログラムの単体テストを行うものです。
テストをプログラムで実行できると、不具合修正や機能追加をした際にデグレの確認が簡単にでき、品質の低下に気づくことができます。

 

ログイン機能がある場合のテストについて

ログインの機能があると、トークンやパスワードがないと認証エラーが起こり、テストができません。
今回はトークンが必要な場合のテストについて説明します。

 

トークンの取得方法

WEBアプリにログインします。
画面右端にある「・・・」を押下し、その他ツール→ディベロッパーツールを選択します。

項目のアプリケーションを選択し、ストレージのローカルストレージから対応するアプリケーションのURLを選択します。Keyの中にTOKENの項目があるので、選択し赤枠部分にトークンが出てくるのでコピーします。

 

Junitでのデータ取得

最後に、JunitでのWEBアプリでのAPIのテストコードを記入します。

get(url) 実行するページ、@Postの場合はgetpostになる。
queryParams(queryParams) パラメータの入力
header(“authentication”,authentication) 認証トークン
accept(MediaType.APPLICATION_JSON) Json形式で結果を受け取る
andExpect(status().isOk()) 接続ができていることの確認。
result.getResponse().getContentAsString() JsonString形式で受け取る
assertEquals(“{}”, responseBody) 結果の比較
“{}”は予測結果、responseBodyは実行結果
assertEqualsは第一引数と第二引数が同じであることを確認している。
予測結果の部分を変えることで、パラメータの違いによるテストをすぐに行うこともできる。

 

最後に

Junitでテストを行うことで、2回目以降のテストも誰でも同じ条件でテストができるので見落としや、テストの抜けが減らせるのでデグレを減らすことができます。
テストをしっかり行って、品質を落とさないようにしていきましょう。

【エンジニア募集中】フルリモートも◎(リモート率85.7%)、平均残業8時間、年休124日以上、有給取得率90% etc. 詳細はこちらから>

Smallitのサービス