[VS2013] Private メソッドへの単体テスト実装
単体テストプロジェクトで Private メソッドへのテストを書きたい場合、方法はいくつかあるようだが、外部からアクセスできる public メソッドを書いてしまうのが手っ取り早い。
テスト対象クラス
- クラスそのものは public である必要がある。
- #if DEBUG を書いておけば、デバッグ時のみ有効化される。
テスト対象クラス
using System; namespace Sample { public static class Program { static void Main(string[] args) { } #if DEBUG public static string UtGetCodeName(string name) { return GetCodeName(name); } #endif static string GetCodeName(string name) { if (name.Length == 0) { return null; } var r = new Random(); return "C" + r.Next(10, 99).ToString() + name.Substring(3); } } }テストメソッド
[TestMethod] public void GetCodeName_nullではないこと() { Assert.IsNotNull(Sample.Program.UtGetCodeName("Daniel")); } [TestMethod] public void GetCodeName_nullになること() { Assert.IsNull(Sample.Program.UtGetCodeName("")); }