it技術:dotnet:テストフレームワーク
テストフレームワーク
.NET系のテストフレームワークには、大きく3種類(MsTest・NUnit・xUnit)がある。
Visual Studioで標準搭載されているのが「MsTest」、他はNuGetでインストールできる。
MsTest
- ユニットテスト用のプロジェクトを作成
- [新規作成]→[プロジェクト]から、テストプロジェクト/プロジェクト名を指定します。
- テスト対象 の参照を追加
- ユニットテストプロジェクトに、テスト対象(TargetApp)の参照を追加します。
プライベートメソッド
プライベートメソッドは非公開のため通常ではアクセスできないが、単体テストするにはアクセスする必要がある。
非静的
クラスライブラリなどインスタンスを生成してメソッドを呼ぶ
PrivateObjectを使用する。
var cls1 = new Class1(); var pbObj = new PrivateObject(cls1); ret = (string)pbObj.Invoke("AddPrivate", 1, 2);
静的
コンソールアプリケーションでは、静的になっていることが多い
PrivateTypeを使用する。
statcクラスのprivateメソッドのテストを実施したい
> namespace TestFuga { public class Program { private static string GetHoge() { return "Hoge"; } } } namespace UnitTest { [TestClass] public class UnitTest1 { [TestMethod] public void TestMethod1() { var target = new PrivateType(typeof(TestFuga.Program)); var result = target.InvokeStatic("GetHoge", null); Assert.AreEqual("Hoge", result); } } }
it技術/dotnet/テストフレームワーク.txt · 最終更新: 2021/07/07 17:55 by yajuadmin