ドメイン駆動開発_フォルダー構成編_#10_テストコードとViewModelの追加

当サイトではアフィリエイト広告を利用しています。

NDDD

前回は,Testsプロジェクトへのフォルダー追加と,WinFormプロジェクトへのフォルダー追加を行い,さらにViewModelsフォルダーにViewModelBaseクラスを作成してもらいました。今回は実際にテストクラスとViewModelクラスを作成していきます。

テストコードの追加

それではテストコードを作成していきます。テストコードを書くには,テストコードを書くためのクラスを作成します。Testsプロジェクトの「ViewModelTests」フォルダーを右クリックして,「追加」「単体テスト」を選択し,テストクラスを作成します。

「UnitTest1.cs」というテストクラスが作成されます。デフォルトの名前になってしまっているので,名前を適切な名前のクラス名「LatestViewModelTest」に変更します。

ファイル名を変更したことで,次のようなメッセージが表示されます。

これに「はい」で応答してください。そうすると,変更したファイル名でクラス名が変更されます。もし表示されない場合は,自分でクラス名をLatestViewModelTestに変更しましょう。

今回は,データベースなどのディスクからデータを取得して画面に表示させるというシンプルな例を取り上げるため,最初に作成するクラスは「直近値画面」に対応するViewModelになります。よって直近値画面に対応するViewModelのテストクラスということで,

LatestViewModelTestという名前にしました。テストクラスはテスト対象のクラス名の語尾に「Test」とつけるようにしています。

ここまで出来たら,次のようにコードを書きます。「TestMethod1」となっているデフォルトのテスト名は「シナリオ」という日本語に書き換えます。テストコードは外部から呼び出すコードではないので,日本語で何のテストをしているかがわかるようにするほうが良いと私は思っているので,このように日本語でメソッド名は命名しています。メソッド名を「シナリオ」としたら,LatestViewModelのインスタンスを生成する1行をかきます。

using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace NDDDTest.Tests.ViewModelTests
{
    [TestClass]
    public class LatestViewModelTest
    {
        [TestMethod]
        public void シナリオ()
        {
            var vm = new LatestViewModel();
        }
    }
}

LatestViewModelはまだ存在しないので,コンパイルエラーになります。テスト駆動開発ではこのように,まだ存在しないクラスやメソッド,プロパティに対して,先にテストコードを書いて,必要に応じて,クラス等を作成していきます。このようにすることで,すべてのコードがテストコードでカバーされ,さらに,必要なコードしか存在しないという状態になります。実際にはすべてのコードをカバーするのは大変なので,90%程度がカバーされるイメージでよいと思います。

ViewModelの追加

それではLatestViewModelを作成しましょう。

WinFormプロジェクトの「ViewModels」フォルダーを右クリックして,「追加」「新しいフォルダー」を選択し,「LatestViewModel.cs」という名前でクラスを作成し,次のようにコーディングします。ViewModelBaseを継承しています。

namespace NDDD.WinForm.ViewModels
{
    public class LatestViewModel : ViewModelBase
    {
    }
}

これでLatestViewModelTestクラスに「using NDDD.WinForm.ViewModels;」を追加すれば,コンパイルエラーが解消されます。

using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using NDDD.WinForm.ViewModels;

namespace NDDDTest.Tests.ViewModelTests
{
    [TestClass]
    public class LatestViewModelTest
    {
        [TestMethod]
        public void シナリオ()
        {
            var vm = new LatestViewModel();
        }
    }
}

コンパイルエラーの波線が出ているところにカーソルをあてて「ctrl」+「.(ドット)」を押下して,「Enter」を押すと,ショートカットで「using NDDD.WinForm.ViewModels;」が追加されるのでお試しください。

テストの実施

テストエクスプローラーから「すべてを実行」を押下して,試しにテストを実施してみましょう。

グリーンが表示され,テストが成功していることが確認できます。

もし,テストエクスプローラーが表示されていない場合は,ツールバーの「テスト」から「ウィンドウ」「テストエクスプローラー」の順に選択し,表示させてください。