.NETCore-テストライブラリ
この章では、StringLibraryをテストします。そのためには、デフォルトの規則に従うことができるようにプロジェクトを再配置する必要があります。
開いてみましょう global.json ファイル。
{
"projects": [ "src", "test" ],
"sdk": {
"version": "1.0.0-preview2-003131"
}
}
このファイルの上部にプロジェクト設定が表示され、次のようなフォルダが設定されます。 src そして test デフォルトでは。
慣例により、これらのフォルダーにプロジェクトを配置する必要があるため、これは新しい規則であり、.NETCoreの一部として使用されます。
ソリューションエクスプローラーでは、コンソールプロジェクトとライブラリプロジェクトの両方が内部にあることがわかります。 src テストプロジェクトが内部にある間のフォルダ test フォルダ。
また、ソリューションエクスプローラーのプロジェクト構造は、プロジェクトがディスク上の物理的に存在する場所を表していません。Solutionフォルダーを開くと、次のように表示されます。StringLibrary プロジェクトは内部にありません src フォルダ。
あなたは両方を見ることができます src そして test フォルダは、で指定された規則にマップされます global.jsonファイル。ただし、慣例に反する1つのプロジェクトStringLibraryがあります。ここで追加しましょうStringLibrary 内部のプロジェクト src フォルダ。
srcフォルダーには2つのプロジェクトがあり、すべてのプロジェクトを適切に使用できるように問題を修正する必要があります。Visual Studioに戻り、StringLibraryプロジェクトを右クリックして、[削除]オプションを選択します。削除はしませんが、プロジェクトを削除するだけです。
次に、srcフォルダーを右クリックして、 Add → Existing Project…
現在内部にあるStringLibraryプロジェクトを参照します src フォルダ、を選択します StringLibrary.csproj ファイルをクリックします Open。
ここで、の参照を削除する必要があります StringLibrary から project.json コンソールアプリのファイル。
{
"version": "1.0.0-*",
"buildOptions": {
"emitEntryPoint": true
},
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.1"
},
"NuGet.CommandLine": "3.5.0",
"System.Runtime.Serialization.Json": "4.0.3"
},
"frameworks": {
"netcoreapp1.0": {
"dependencies": { },
"imports": "dnxcore50"
}
}
}
変更を保存してから、の参照を追加します StringLibrary 再びコンソールプロジェクトで。
{
"version": "1.0.0-*",
"buildOptions": {
"emitEntryPoint": true
},
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.1"
},
"NuGet.CommandLine": "3.5.0",
"System.Runtime.Serialization.Json": "4.0.3"
},
"frameworks": {
"netcoreapp1.0": {
"dependencies": {
"StringLibrary": {
"target": "project"
}
},
"imports": "dnxcore50"
}
}
}
これですべてが再び機能するはずで、ビルドできます StringLibrary その後 FirstApp(コンソールプロジェクト)エラーなし。xunitを使用してStringLibrary機能をテストしてみましょう。StringLibraryの参照をテストプロジェクトに追加する必要があります。StringLibraryTestsプロジェクトの参照を右クリックし、[参照の追加…]を選択します。
クリック OK の参照を追加します StringLibrary私たちのテストプロジェクトに。ここで、次のコードを置き換えましょう。Tests.cs ファイル。
using System;
using Xunit;
using StringLibrary;
namespace Tests {
public class Tests {
[Fact]
public void StartsWithUpperCaseTest() {
string input = "Mark";
Assert.True(input.StartsWithUpper());
}
[Fact]
public void StartsWithLowerCaseTest() {
string input = "mark";
Assert.True(input.StartsWithLower());
}
[Fact]
public void StartsWithNumberCaseTest() {
string input = "123";
Assert.True(input.StartsWithNumber());
}
}
}
StringLibraryの機能をテストする3つのテストメソッドがあることがわかります。クリックしてみましょうRun All リンクをクリックすると、テストエクスプローラーに次の出力が表示されます。
コマンドラインからテストを実行することもできます。コマンドプロンプトを開いて、dotnet test コマンド。