■ private のコンストラクタに関するテスト
構文
var privateInstance = (【対象クラス】)Activator.CreateInstance(typeof(【対象クラス】), true);
参考文献
http://cookie40000.hatenablog.com/entry/2016/04/06/203437https://stackoverflow.com/questions/15663983/c-sharp-unit-testing-class-with-a-private-constructor
■ private のメソッド/プロパティに関するテスト
* PrivateObjectクラスの... + メソッドであれば、Invoke() を使用する + プロパティであれば、Get・SetFieldOrProperty/Get・SetStaticProperty etc を使用する[[https://docs.microsoft.com/ja-jp/dotnet/api/microsoft.visualstudio.testtools.unittesting.privateobject?view=mstest-net-1.2.0]]
サンプル
[TestMethod] public void PrivateMethodTest() { var targetClass = new DemoClass(); var privateInstance = new PrivateObject(targetClass); var actual = (string)privateInstance.Invoke("SayHello", new object[] { "Hello", "World" }); Assert.AreEqual("Hello World", actual); }
参考文献
https://www.gesource.jp/weblog/?p=7742■ private static のメソッド/プロパティに関するテスト
* PrivateTypeクラスのInvokeStatic() を使用する
サンプル
[TestMethod] public void PrivateStaticMethodTest() { var target = new PrivateType(typeof(DemoClass)); var result = target.InvokeStatic("SayHello", "Mike"); Assert.AreEqual("Hello, Mike", result); }
参考文献
https://teratail.com/questions/28151■ private の定数を参照するには...
構文
PrivateType privateType = new PrivateType(typeof(対象クラス)); var 定数を受ける変数 = (データ型)privateType .GetStaticField("定数名");
サンプル
PrivateType privateType = new PrivateType(typeof(SampleClass)); var const = (string)privateType .GetStaticField("DummyConstN");
参考文献
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14181335214関連記事
MS-Test
MS-Test あれこれhttps://blogs.yahoo.co.jp/dk521123/18458247.html
単体試験で外部ファイル(CSVなど)からデータを取得する
https://blogs.yahoo.co.jp/dk521123/31885401.html
ファイルを使う機能の単体試験について
https://blogs.yahoo.co.jp/dk521123/31532337.html