ExercismでVisual Basicの演習をテストする方法を学びます。
ダウンロードした演習には、解答をビルドしてテストするための次のファイルが含まれています。
hello-world/
├── HelloWorld.vb # Your solution
├── HelloWorldTests.vb # The test suite
├── HelloWorld.vbproj # Project and build configuration
└── packages.lock.json # Resolved project dependencies
ファイル名は演習によって異なります。
解答は、最初の.vbファイルに書きます。
Tests.vbで終わる2つ目のファイルは、[xUnitのテストスイート][xunit]です。
通常、このファイルを編集するのは、続くテストのスキップを解除するときだけです。
最後の2つのファイルは、どちらも編集する必要はありません。
.vbprojファイルには、プロジェクトのビルド設定と直接のパッケージ参照が含まれています。
生成されるpackages.lock.jsonファイルには、解決された直接および推移的なパッケージのバージョンが記録されます。
テストは、合格する解答が満たすべき振る舞いを表しています。 説明で触れられていない細かい点を明確にするのにも役立ちます。
演習のディレクトリでターミナルを開き、次のコマンドを実行します。
dotnet test
このコマンドは、プロジェクトの依存関係を復元し、プロジェクトをビルドして、そのテストを実行します。
dotnet watch testを使うと、ソースファイルが変更されるたびにテストを再実行することもできます。
演習では最初、最初のテストだけが有効になっていて、残りを1つずつ解き進められます。
テストを探すには、Tests.vbで終わるファイルを開きます。
各テストは、xUnitの<Fact>属性が付いたSubサブルーチンです。
テストの<Fact>属性にSkip引数があるかぎり、そのテストはスキップされます。
<Fact(Skip:="Remove this Skip property to run this test")>
Public Sub Lowercase_words()
Assert.Equal("ROR", Abbreviate("Ruby on Rails"))
End Sub
テストを有効にするには、Skip引数を削除するだけです。
<Fact>
Public Sub Lowercase_words()
Assert.Equal("ROR", Abbreviate("Ruby on Rails"))
End Sub
新しく有効にしたテストが通ったら、次にスキップされているテストでも同じことを繰り返します。 すべてのテストが有効で通るようになれば、完了です。