- 開発技術
ログインの機能があるWEBアプリのJunitを使ったAPIのテスト方法
- JUnit
- #Java

Junitとは
【エンジニア募集中】フルリモート可◎、売上/従業員数9年連続UP、平均残業8時間、有給取得率90%、年休124日以上 etc. 詳細はこちらから>
Java言語で作られたプログラムの単体テストを行うものです。
テストをプログラムで実行できると、不具合修正や機能追加をした際にデグレの確認が簡単にでき、品質の低下に気づくことができます。
ログイン機能がある場合のテストについて
ログインの機能があると、トークンやパスワードがないと認証エラーが起こり、テストができません。
今回はトークンが必要な場合のテストについて説明します。
トークンの取得方法
WEBアプリにログインします。
画面右端にある「・・・」を押下し、その他ツール→ディベロッパーツールを選択します。
項目のアプリケーションを選択し、ストレージのローカルストレージから対応するアプリケーションのURLを選択します。Keyの中にTOKENの項目があるので、選択し赤枠部分にトークンが出てくるのでコピーします。
Junitでのデータ取得
最後に、JunitでのWEBアプリでのAPIのテストコードを記入します。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
// URL実行 authenticationに先ほど取得したトークンを入れる MvcResult result = mockMvc.perform(get(url) .queryParams(queryParams) .header("authentication",authentication) .accept(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()) // 接続確認 .andReturn(); // レスポンスBodyの取得 String responseBody = result.getResponse().getContentAsString(); // 空のレスポンスに対する処理 assertEquals("{}", responseBody); |
get(url) 実行するページ、@Postの場合はget→postになる。
queryParams(queryParams) パラメータの入力
header(“authentication”,authentication) 認証トークン
accept(MediaType.APPLICATION_JSON) Json形式で結果を受け取る
andExpect(status().isOk()) 接続ができていることの確認。
result.getResponse().getContentAsString() JsonをString形式で受け取る
assertEquals(“{}”, responseBody) 結果の比較
“{}”は予測結果、responseBodyは実行結果
assertEqualsは第一引数と第二引数が同じであることを確認している。
予測結果の部分を変えることで、パラメータの違いによるテストをすぐに行うこともできる。
最後に
Junitでテストを行うことで、2回目以降のテストも誰でも同じ条件でテストができるので見落としや、テストの抜けが減らせるのでデグレを減らすことができます。
テストをしっかり行って、品質を落とさないようにしていきましょう。
【エンジニア募集中】フルリモートも◎(リモート率85.7%)、平均残業8時間、年休124日以上、有給取得率90% etc. 詳細はこちらから>