JavaScript

【APIサーバー】Todo一覧を取得するAPIのテストのリファクタリング

どうも、つよぽんです!

今回は「APIサーバーを実装するシリーズ」の第8回目の記事となります。

以前書いた以下の2つの記事をまだ読んでいない方は、以下の記事も読むことをオススメします。

第8回目の今回は、前回実装したテストコード用のヘルパー機能「requestHelper」を、第4回目の記事「【APIサーバー】データ一覧取得するAPIのテストを作成する」で実装したテストコードに組み込んでいきます。

つまり、「第8回目で実装した機能」を使って「第4回目に実装したテストコードをリファクタリングする」ということなります。

今回の記事内容は、以下のリンク先で使っているスライドの一部を補足した記事になります。

実際に手を動かしながら覚えたい方は、以下のスライドも参考にすると良いでしょう。

あわせて読みたい
【リファクタリング】Todo一覧を取得するAPIのテストを修正する今回は以前作成したgetTodos.test.jsをリファクタリングします。前回記事でsupertestの共通処理をまとめたrequestHelperを作成しましたがgetTodos.test.jsではまだ利用していません。requestHelperを統一して使うためにgetTodos.test.jsを修正します。...

今回の記事は次のような方に向けて書きました。

想定読者
  1. リファクタリングの流れを理解したい方

この記事を読み終えた後のあなたは次のことがわかるようになっています。

この記事を読み終えた後のあなた
  • リファクタリング出来るようになる

それでは以下の内容で話を進めていきます。

今回の内容
  1. 第4回目に実装した「GET /api/todos」のテストコード
  2. 第8回目で実装した「requestHelper」を「GET /api/todos」のテストコードに、組み込む

第4回目に実装した「GET /api/todos」のテストコード

現状までの「GET /api/todos」のテストコード

以下の画像は、APIサーバーを実装するシリーズの第4回目の記事「【APIサーバー】データ一覧取得するAPIのテストを作成する」で実装したテストコードになります。(※画像をクリックすると別タブで画像が開きます)

現状の「GET /api/todos」用のテストコード現状の「GET /api/todos」用のテストコード

現状のテストコードの中で、後ほど変更する部分

以下の画像の赤枠部分は、APIのテストを実装するために使っているライブラリである「supertest」を直接使っている部分になります。(※画像をクリックすると別タブで画像が開きます)

requestHelperを組み込んで変更する予定の部分requestHelperを組み込んで変更する予定の部分

この赤枠部分を、後ほど、前回記事で作成した「requestHelper」に置き換える箇所となります。

第8回目で実装した「requestHelper」を「GET /api/todos」のテストコードに、組み込む

requestHelperを使った形式に修正する(リファクタリング)

以下の画像の赤枠部分が、先ほどまで「supertest」を直接使っていた箇所を「requestHelper」を使う形式に置き換えたところです。(※画像をクリックすると別タブで画像が開きます)

「requestHelper」に置き換えたテストコード(リファクタリング後)「requestHelper」に置き換えたテストコード(リファクタリング後)

この修正で今回のリファクタリング作業は終わりとなります。

リファクタリング後は動作に変更がないことを確認する

リファクタリングする前と、リファクタリングした後では、動作に違いがあってはいけません。

そのため、リファクタリング後は動作に違いがないかテストを実行して確かめましょう。

テストが以前と同じように成功していれば、動作が変わっていないことを確認できます。

以下の画像は、リファクタリング後にテストを実行して、動作が変わっていないことが確認出来た様子になります。

リファクタリング後に動作が変わっていないことを確認するためにテストを実行するリファクタリング後に動作が変わっていないことを確認するためにテストを実行する

まとめ

今回の話をまとめると次のとおりです。

今回のまとめ
  • 「GET /api/todos」のテストコードをリファクタリングした
  • リファクタリング後に動作が変わっていないことを確認するために、テストを実行して確かめた

今回の内容は以下の記事内のスライドでも学習できます。

あわせて読みたい
【リファクタリング】Todo一覧を取得するAPIのテストを修正する今回は以前作成したgetTodos.test.jsをリファクタリングします。前回記事でsupertestの共通処理をまとめたrequestHelperを作成しましたがgetTodos.test.jsではまだ利用していません。requestHelperを統一して使うためにgetTodos.test.jsを修正します。...
【3つの特典付き】Webエンジニアに必要な基礎スキルを体系的に効率良く身につけたいですか?

LINE登録で無料特典を受け取る

次のような方向けに、学習をサポートするコンテンツを無料プレゼントしています。

  • Webエンジニアになりたいけど何から学習を始めれば良いかわからない
  • 今まで独学で頑張ってきたけど、独学に限界を感じてきた
  • プログラミングは出来るけど、大きめのコードが書けない

「プレゼント詳細が知りたい」「プレゼントを受け取りたい」といった方は、以下のボタンをクリックして詳細ページをご確認ください。

無料特典を受け取る

 

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です