VB.NETで単体テストを作成する手順
Notion AIに質問をし、記事にさせてみました。
・VB.Netで単体テストをする際に有用なツールはあるか
・使い方、テスト例、既存プロジェクトに単体テストを追加する方法を記事にして
VB.NETで単体テストを作成する手順
この記事では、Visual Studio 2019でMicrosoft Unit Test Frameworkを使ってVB.NETの単体テストを作成する手順を紹介します。
手順
新しいプロジェクトを作成する。
プロジェクトのテンプレートを「テスト」に設定する。
テストプロジェクトに必要なパッケージをインストールする。
テストクラスとテストメソッドを作成する。
テストエクスプローラーでテストを実行する。
1. 新しいプロジェクトを作成する
まず、Visual Studioを開いて、新しいプロジェクトを作成します。プロジェクトの種類は「テスト」を選択します。
2. プロジェクトのテンプレートを「テスト」に設定する
「テスト」を選択した後、使用するテンプレートを選択します。ここでは「単体テストプロジェクト」を選択します。
3. テストプロジェクトに必要なパッケージをインストールする
テストプロジェクトでMicrosoft Unit Test Frameworkを使用するには、以下のNuGetパッケージをインストールする必要があります。
Microsoft.VisualStudio.QualityTools.UnitTestFramework
パッケージマネージャーコンソールから以下のコマンドを実行することで、パッケージをインストールできます。
Install-Package Microsoft.VisualStudio.QualityTools.UnitTestFramework
4. テストクラスとテストメソッドを作成する
テストプロジェクト内に、テストクラスとテストメソッドを作成します。必要なテストコードは、サンプルコードを参考にしてください。
5. テストエクスプローラーでテストを実行する
テストプロジェクト内のテストクラスやテストメソッドを、テストエクスプローラーから実行できます。テストエクスプローラーは、Visual Studioのメニューから「テスト」→「テストエクスプローラー」を選択することで、表示できます。
テストの例
以下は、VB.NETで単体テストを作成する際の例です。
テキストボックスに値を入力し、検索ボタンを押下した際に、SpreadSheetに正しいデータが表示されることを確認するテスト。
<TestMethod()>
Public Sub SearchData_WhenInputValue_ReturnsCorrectData()
'検索条件を設定する
Dim searchForm = New SearchForm()
searchForm.ShopCodeTextBox.Text = "TEST-001"
searchForm.IdTextBox.Text = "001"
searchForm.ProductNameTextBox.Text = "test_item"
'検索ボタンをクリックする
searchForm.SearchButton.PerformClick()
'SpreadSheetの内容を確認する
Dim spreadSheet = searchForm.SpreadSheet
Assert.AreEqual(1, spreadSheet.Rows.Count)
Assert.AreEqual("TEST-001", spreadSheet.Rows(0).Cells("shop_code").Value)
Assert.AreEqual("001", spreadSheet.Rows(0).Cells("id").Value)
Assert.AreEqual("test_item", spreadSheet.Rows(0).Cells("product_name").Value)
Assert.AreEqual(1000, spreadSheet.Rows(0).Cells("price").Value)
Assert.AreEqual(10, spreadSheet.Rows(0).Cells("quantity").Value)
End Sub
テキストボックスに値を入力せずに、検索ボタンを押下した際に、SpreadSheetに何も表示されないことを確認するテスト。
<TestMethod()>
Public Sub SearchData_WhenNotInputValue_NothingDisplayed()
'検索条件を設定する
Dim searchForm = New SearchForm()
'検索ボタンをクリックする
searchForm.SearchButton.PerformClick()
'SpreadSheetの内容を確認する
Dim spreadSheet = searchForm.SpreadSheet
Assert.AreEqual(0, spreadSheet.Rows.Count)
End Sub
全ての項目を入力し、検索ボタンを押下した際に、SpreadSheetに正しいデータが表示されることを確認するテスト。
<TestMethod()>
Public Sub SearchData_WhenInputAllValue_ReturnsCorrectData()
'検索条件を設定する
Dim searchForm = New SearchForm()
searchForm.ShopCodeTextBox.Text = "TEST-001"
searchForm.DateTextBox.Text = "2022/01/01"
searchForm.IdTextBox.Text = "001"
searchForm.ProductNameTextBox.Text = "test_item"
searchForm.PriceTextBox.Text = "1000"
searchForm.QuantityTextBox.Text = "10"
'検索ボタンをクリックする
searchForm.SearchButton.PerformClick()
'SpreadSheetの内容を確認する
Dim spreadSheet = searchForm.SpreadSheet
Assert.AreEqual(1, spreadSheet.Rows.Count)
Assert.AreEqual("TEST-001", spreadSheet.Rows(0).Cells("shop_code").Value)
Assert.AreEqual("001", spreadSheet.Rows(0).Cells("id").Value)
Assert.AreEqual("test_item", spreadSheet.Rows(0).Cells("product_name").Value)
Assert.AreEqual(1000, spreadSheet.Rows(0).Cells("price").Value)
Assert.AreEqual(10, spreadSheet.Rows(0).Cells("quantity").Value)
End Sub
以上が、VB.NETで単体テストを作成する手順と例です。
###既存プロジェクトに単体テストを追加する
既存のプロジェクトに単体テストを追加するには、以下の手順に従ってください。
既存のプロジェクトを開きます。
「テスト」メニューから「新しいテストプロジェクト」を選択します。
新しいテストプロジェクトを既存のソリューションに追加します。
追加したテストプロジェクトで、必要なパッケージをインストールし、テストコードを記述します。
テストエクスプローラーでテストを実行します。
詳細な手順を以下に示します。
1. 既存のプロジェクトを開く
既存のプロジェクトを開きます。
2. 「テスト」メニューから「新しいテストプロジェクト」を選択する
Visual Studioのメニューから「テスト」→「新しいテストプロジェクト」を選択します。
3. 新しいテストプロジェクトを既存のソリューションに追加する
新しいテストプロジェクトを、既存のソリューションに追加します。
4. 追加したテストプロジェクトで、必要なパッケージをインストールし、テストコードを記述する
追加したテストプロジェクトで、必要なNuGetパッケージをインストールし、テストコードを記述します。
5. テストエクスプローラーでテストを実行する
テストエクスプローラーで、追加したテストプロジェクトのテストを実行します。
以上が、既存のプロジェクトに単体テストを追加する手順です。
VB.NETで単体テストを作成する手順
この記事では、Visual Studio 2019でMicrosoft Unit Test Frameworkを使ってVB.NETの単体テストを作成する手順を紹介します。
手順
新しいプロジェクトを作成する。
プロジェクトのテンプレートを「テスト」に設定する。
テストプロジェクトに必要なパッケージをインストールする。
テストクラスとテストメソッドを作成する。
テストエクスプローラーでテストを実行する。
1. 新しいプロジェクトを作成する
まず、Visual Studioを開いて、新しいプロジェクトを作成します。プロジェクトの種類は「テスト」を選択します。
2. プロジェクトのテンプレートを「テスト」に設定する
「テスト」を選択した後、使用するテンプレートを選択します。ここでは「単体テストプロジェクト」を選択します。
3. テストプロジェクトに必要なパッケージをインストールする
テストプロジェクトでMicrosoft Unit Test Frameworkを使用するには、以下のNuGetパッケージをインストールする必要があります。
Microsoft.VisualStudio.QualityTools.UnitTestFramework
パッケージマネージャーコンソールから以下のコマンドを実行することで、パッケージをインストールできます。
Install-Package Microsoft.VisualStudio.QualityTools.UnitTestFramework
4. テストクラスとテストメソッドを作成する
テストプロジェクト内に、テストクラスとテストメソッドを作成します。必要なテストコードは、サンプルコードを参考にしてください。
5. テストエクスプローラーでテストを実行する
テストプロジェクト内のテストクラスやテストメソッドを、テストエクスプローラーから実行できます。テストエクスプローラーは、Visual Studioのメニューから「テスト」→「テストエクスプローラー」を選択することで、表示できます。
テストの例
以下は、VB.NETで単体テストを作成する際の例です。
テキストボックスに値を入力し、検索ボタンを押下した際に、SpreadSheetに正しいデータが表示されることを確認するテスト。
<TestMethod()>
Public Sub SearchData_WhenInputValue_ReturnsCorrectData()
'検索条件を設定する
Dim searchForm = New SearchForm()
searchForm.ShopCodeTextBox.Text = "TEST-001"
searchForm.IdTextBox.Text = "001"
searchForm.ProductNameTextBox.Text = "test_item"
'検索ボタンをクリックする
searchForm.SearchButton.PerformClick()
'SpreadSheetの内容を確認する
Dim spreadSheet = searchForm.SpreadSheet
Assert.AreEqual(1, spreadSheet.Rows.Count)
Assert.AreEqual("TEST-001", spreadSheet.Rows(0).Cells("shop_code").Value)
Assert.AreEqual("001", spreadSheet.Rows(0).Cells("id").Value)
Assert.AreEqual("test_item", spreadSheet.Rows(0).Cells("product_name").Value)
Assert.AreEqual(1000, spreadSheet.Rows(0).Cells("price").Value)
Assert.AreEqual(10, spreadSheet.Rows(0).Cells("quantity").Value)
End Sub
テキストボックスに値を入力せずに、検索ボタンを押下した際に、SpreadSheetに何も表示されないことを確認するテスト。
<TestMethod()>
Public Sub SearchData_WhenNotInputValue_NothingDisplayed()
'検索条件を設定する
Dim searchForm = New SearchForm()
'検索ボタンをクリックする
searchForm.SearchButton.PerformClick()
'SpreadSheetの内容を確認する
Dim spreadSheet = searchForm.SpreadSheet
Assert.AreEqual(0, spreadSheet.Rows.Count)
End Sub
全ての項目を入力し、検索ボタンを押下した際に、SpreadSheetに正しいデータが表示されることを確認するテスト。
<TestMethod()>
Public Sub SearchData_WhenInputAllValue_ReturnsCorrectData()
'検索条件を設定する
Dim searchForm = New SearchForm()
searchForm.ShopCodeTextBox.Text = "TEST-001"
searchForm.DateTextBox.Text = "2022/01/01"
searchForm.IdTextBox.Text = "001"
searchForm.ProductNameTextBox.Text = "test_item"
searchForm.PriceTextBox.Text = "1000"
searchForm.QuantityTextBox.Text = "10"
'検索ボタンをクリックする
searchForm.SearchButton.PerformClick()
'SpreadSheetの内容を確認する
Dim spreadSheet = searchForm.SpreadSheet
Assert.AreEqual(1, spreadSheet.Rows.Count)
Assert.AreEqual("TEST-001", spreadSheet.Rows(0).Cells("shop_code").Value)
Assert.AreEqual("001", spreadSheet.Rows(0).Cells("id").Value)
Assert.AreEqual("test_item", spreadSheet.Rows(0).Cells("product_name").Value)
Assert.AreEqual(1000, spreadSheet.Rows(0).Cells("price").Value)
Assert.AreEqual(10, spreadSheet.Rows(0).Cells("quantity").Value)
End Sub
以上が、VB.NETで単体テストを作成する手順と例です。
既存プロジェクトに単体テストを追加する
既存のプロジェクトに単体テストを追加するには、以下の手順に従ってください。
既存のプロジェクトを開きます。
「テスト」メニューから「新しいテストプロジェクト」を選択します。
新しいテストプロジェクトを既存のソリューションに追加します。
追加したテストプロジェクトで、必要なパッケージをインストールし、テストコードを記述します。
テストエクスプローラーでテストを実行します。
詳細な手順を以下に示します。
1. 既存のプロジェクトを開く
既存のプロジェクトを開きます。
2. 「テスト」メニューから「新しいテストプロジェクト」を選択する
Visual Studioのメニューから「テスト」→「新しいテストプロジェクト」を選択します。
3. 新しいテストプロジェクトを既存のソリューションに追加する
新しいテストプロジェクトを、既存のソリューションに追加します。
4. 追加したテストプロジェクトで、必要なパッケージをインストールし、テストコードを記述する
追加したテストプロジェクトで、必要なNuGetパッケージをインストールし、テストコードを記述します。
5. テストエクスプローラーでテストを実行する
テストエクスプローラーで、追加したテストプロジェクトのテストを実行します。
以上が、既存のプロジェクトに単体テストを追加する手順です。