ユーザ用ツール

サイト用ツール


it技術:dotnet:テストフレームワーク

テストフレームワーク

.NET系のテストフレームワークには、大きく3種類(MsTest・NUnit・xUnit)がある。
Visual Studioで標準搭載されているのが「MsTest」、他はNuGetでインストールできる。

MsTest

  1. ユニットテスト用のプロジェクトを作成
    • [新規作成]→[プロジェクト]から、テストプロジェクト/プロジェクト名を指定します。
  2. テスト対象 の参照を追加
    • ユニットテストプロジェクトに、テスト対象(TargetApp)の参照を追加します。

「WindowsアプリケーションにおけるMSTestの活用」

プライベートメソッド

プライベートメソッドは非公開のため通常ではアクセスできないが、単体テストするにはアクセスする必要がある。

非静的

クラスライブラリなどインスタンスを生成してメソッドを呼ぶ
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