Twitter でこのようなツイートを見つけたので、少し書いてみた
あれ?
— aridai (@aridai_net) 2017年4月27日
単体テストでプライベートなメンバにアクセスするのってどうやるんだっけ?
なにするの?
ChainingAssertion ってライブラリを使ってサクッとプライベートメソッドをテストできるよってお話。
やりかた
まずは、 クラスライブラリと MSTest なプロジェクトを適当に作ります。
Nuget で MSTest のところに、 ChainingAssertion で検索して入れます。すると、 ChainingAssertion,MSTest.cs というCsharpファイルが作成されます。(パッケージの実態は、ここに定義された拡張メソッド群です。
ドキュメント代わりにもなる。
実際に使用するときは、 {ClassName}.AsDynamic.{Private Method Name}() as Type(引数の型) って感じで使います。
ソースコード
まとめ
ChainingAssertion はいいぞ