![見出し画像](https://assets.st-note.com/production/uploads/images/160966594/rectangle_large_type_2_eccc1c45b354f4400df75c97e6ee9667.png?width=1200)
VSCodeで初心者向けの天気アプリを開発する方法(2): レスポンス後の自動テスト
前回、天気アプリのバックエンドを構築しましたが、期待通りの結果が返ってきていることをどのように確認しますか?小さなレスポンスなら手動で確認するのは簡単ですが、返ってくるデータが大きかったり、1行ずつ確認が難しい場合はどうすれば良いでしょうか?
今回はEchoAPIのポストレスポンス機能を使って、テストプロセスを自動化する方法について詳しく解説します。この機能を使うことで、APIレスポンスが期待通りであるか自動的にチェックでき、時間と労力を大幅に節約できます。
EchoAPIのポストレスポンス機能を使えば、APIリクエスト後に自動的にスクリプトを実行し、アプリケーションが意図した通りに動作しているかを確認できます。さっそく、EchoAPIを使った天気アプリの自動テストの方法を見ていきましょう。
EchoAPIでのテスト自動化手順
EchoAPIをVSCodeにセットアップ
![](https://assets.st-note.com/img/1730978310-f4F8tAnbagGQuBjJCirWyZhX.png?width=1200)
まずは、VSCodeにEchoAPI for VS Code拡張機能をインストールしてください。インストール後はEchoAPIのインターフェース内でリクエストをテストし、自動化できます。しかも無料です!
GETリクエストを作成する
メソッドをGETに設定し、次のURLを使って天気APIのテストリクエストを作成します。
http://localhost:3000/weather?city=London
送信ボタンを押してリクエストが正常に動作し、正しい天気データが返ってくることを確認してください。ResponseにJSONレスポンスが表示されるはずです。
![](https://assets.st-note.com/img/1730978320-ISXVt4sTBRxQieJ6v59HryWf.png?width=1200)
ポストレスポンススクリプトを追加
手動で天気APIの動作確認ができたら、レスポンスデータの検証を行うための自動テストを追加します。
![](https://assets.st-note.com/img/1730978329-LiE5rw3AYKjD8Z9k6WUFhtnJ.png?width=1200)
EchoAPIのポストレスポンスタブに移動し、JavaScriptでスクリプトを追加します。このスクリプトは、以下の内容を自動的にチェックします。
ステータスコードが200 (OK)であること。
レスポンスにtemperature、weather、cityフィールドが含まれていること。
temperatureが数値であること。
weatherが文字列であること。
cityが文字列であること。
// ステータスコードが200 (OK)であることを確認
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
// temperature、weather、cityフィールドが含まれていることを確認
pm.test("Response contains temperature, weather, and city", function () {
var jsonData = pm.response.json();
pm.expect(jsonData).to.have.property('temperature');
pm.expect(jsonData).to.have.property('weather');
pm.expect(jsonData).to.have.property('city');
});
// temperatureが数値であることを確認
pm.test("Temperature is a number", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.temperature).to.be.a('number');
});
// weatherが文字列であることを確認
pm.test("Weather is a string", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.weather).to.be.a('string');
});
// cityが文字列であることを確認
pm.test("City is a string", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.city).to.be.a('string');
});
テストを実行する
テストスクリプトを追加したら、再度送信ボタンを押してリクエストを実行し、自動でテストスクリプトを実行します。
Test resultをクリックしてテスト結果を確認しましょう。
![](https://assets.st-note.com/img/1730978341-39zvTBqL6pDrlVdASfaZyHR8.png?width=1200)
すべてのチェックが成功すれば、以下のような結果が表示されます。
![](https://assets.st-note.com/img/1730978348-7axvRSJB0e6mHQuiUsrg8yTh.png?width=1200)
追加のテスト自動化(任意)
複数のポストレスポンス自動テストを行いたい場合、ポストレスポンスセクションに異なるリクエストを追加し、各リクエストに特定のテストスクリプトを追加できます。
![](https://assets.st-note.com/img/1730978414-y7HTZGat9Lg2o0CxhNYUSqDK.png?width=1200)
エラーチェック
例えば、無効な都市名でテストする場合、以下のようにURLを変更します。
http://localhost:3000/weather?city=InvalidCity
![](https://assets.st-note.com/img/1730978383-0uc2UEVZmMj16sNLeBY8Frdz.png?width=1200)
// 無効な都市の場合のステータスコードが500 (Internal Server Error)であることを確認
pm.test("Status code is 500 for invalid city", function () {
pm.response.to.have.status(500);
});
// エラーメッセージが返されることを確認
pm.test("Error message is returned for invalid city", function () {
var jsonData = pm.response.json();
pm.expect(jsonData).to.have.property('error');
pm.expect(jsonData.error).to.eql("Failed to fetch weather data");
});
他のシナリオをテスト
例えば、New Yorkのデータが正しいことを検証したい場合、新しいタスクを作成し、City is New York というスクリプトを追加します。
http://localhost:3000/weather?city=New%20York
// 'City'がNew Yorkであることを確認
pm.test("City is 🍎", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.city).to.eql("New York");
});
再度送信ボタンを押し、EchoAPIがすべてのテストを実行し、結果を表示します。
結果はこちらです:
![](https://assets.st-note.com/img/1730978437-HLcG8Wh63v57ODokqZwxU9Vl.png?width=1200)
EchoAPIでのテスト自動化の利点
無料: 無料で利用可能!
一貫性: 時間が経ってもAPIレスポンスが一貫しているか確認できます。
迅速な検証: 手動でデータを確認する手間を省き、さまざまなAPI要素を自動的にチェックできます。
エラーチェック: 配布前にエラーや回帰問題を早期に発見可能。
EchoAPIでのテスト自動化により、天気アプリが期待通りに機能することを確実にできます。