単体テスト フレームワーク
SysTest Framework を使用して、単体テスト コードの記述、テストの統合、およびテストの実行によるコード テストの自動化を行うことができます。 コードから単体テストを作成するための SysTest Framework を設定できます。 タスク レコーダーの録音をVisual Studioにインポートして、テスト コードを生成することもできます。 タスク レコーダーの詳細については、このモジュールの後の方で説明します。
テストをテスト モジュールに統合して、テスト コードの管理に使用できるようにすることができます。 ソース管理にテスト モジュールを追加すると、テストをビルド プロセスに統合できます。 その後、この追加によってビルド時にテスト コードが実行され、すべての機能が期待どおりに機能しているかどうかが確認されます。
テスト コードを個別に実行することもできます。 テスト コードの実行は反復可能なプロセスであるため、テスト クラスを作成したときに複数回実行できます。 これらのイテレーションを使用すると、コードの変更を継続的に検証できます。 また、他の開発者によって変更されている場合は、テストをすばやく実行して生産性を高めることもできます。
テストを再実行するためのオプションは、Microsoft によってリリースされたアップグレード中に組織の生産性にとって有益である場合もあります。 ユーザー リソースを割いてユーザー インターフェイスからすべての機能を回帰テストするのではなく、必要なデータを入力してテスト プロセスを実行するこれらの単体テストを行って、機能が期待どおりに実行されるかどうかを確認することができます。
演習 - テスト ケース フレームワークの使用
注
このトレーニングを修了するには、財務と運用アプリのデモ環境と、Contoso のデモ データおよびフリート管理モジュール データを使用する必要があります。
フリート管理のためのサンプル データ セットを展開するには、次の手順に従います。
- 財務と運用アプリで、フリート管理 > 設定 > フリート設定の順に移動します。
- データ タブで作成 ボタンを選択して、フリート管理のためのサンプル データ セットを生成します。
- データが正常に作成されるとメッセージが表示されます。
まずは単体テストを実行する新しいプロジェクトを作成します。 新しいプロジェクトを作成するには、次の手順を実行します。
- 管理者として Visual Studio を開きます。
- ファイル > 新規 > プロジェクトを選択します。
- 新しいプロジェクトを作成するページで「財務と運用プロジェクトのテンプレート」と検索します。
![[新しいプロジェクトを作成する] ページのスクリーンショット。](media/create-new-project.png)
- 財務と運用プロジェクトのテンプレートを選択してから次へを選択します。
- プロジェクト名フィールドに、MyTestCaseと入力します。
- 作成を選択します。
- ソリューション エクスプローラー ウィンドウで、MyTestCase プロジェクトをクリックし、プロパティを選択します。
- プロパティ ページで、モデルをフリート管理に設定します。
- 適用を選択し、OK を選択します。
ここで以下の手順を行い、プロジェクトにクラスを追加する必要があります。
ソリューション エクスプローラーで MyTestCase を右クリックし、追加 > 新しい項目を選択します。
新しい項目の追加ページが次の画像のようにコンパクト表示になる場合、すべてのテンプレートを表示を選択します。
左側のペインの Dynamics 365 項目ノードを展開し、コードを選択します。
名前フィールドに MyTestClass1 と入力します。
追加を選択してプロジェクトにクラスを追加します。
次に、以下の手順を行い、Visual Studio で実行された場合にテストを実行するコードを記述します。
コード エディターに次のコードを入力します。
//Test unit class must be public and extend the SysTestCase class class MyTestClass1 extends SysTestCase { public void setup() { // Reset the test data to be sure things are clean FMDataHelper::main(null); } [SysTestMethodAttribute] // Using the [SysTestMethodAttribute] because the name of the class does not begin with “Test”. public void testFMTotalsEngine() { FMRental rental; FMTotalsEngine fmTotals; FMRentalTotal fmRentalTotal; FMRentalCharge rentalCharge; FMRentalTotal expectedtotal; str rentalID = '000022'; // Find a known rental rental = FMRental::find(rentalID); // Get the rental charges associated with the rental // Data is seeded randomly, so this will change for each run select sum(ExtendedAmount) from rentalCharge where rentalCharge.RentalId == rental.RentalId; fmTotals = FMTotalsEngine::construct(); fmTotals.calculateRentalVehicleRate(rental); // Get the totals from the engine fmRentalTotal = fmTotals.totals(rental); // Set the expected amount expectedTotal = rental.VehicleRateTotal + rentalCharge.ExtendedAmount; this.assertEquals(expectedTotal,fmRentalTotal); } [SysTestMethodAttribute] public void testFMCarValidateField() { FMCarClass fmCar; fmCar.NumberOfDoors = -1; this.assertFalse(fmCar.validateField(Fieldnum("FMCarClass", "NumberOfDoors"))); } }クラスを保存します。 テスト エクスプローラーでは、2 つのテスト ケースを使用できます。
テスト エクスプローラーが表示されない場合、Visual Studio で 表示 > テスト エクスプローラーを選択します。

ソリューション エクスプローラーの MyTestCase プロジェクトを右クリックし、構築を選択します。
テスト エクスプローラー ウィンドウでテスト チューブ アイコンを選択してテストを表示し、次に再生アイコンを選択してテストを実行します。




