internalクラスのテストってどう書くのがセオリー?まさかReflectionってことはないよね?今まで知らなくてズルッコしてpublicにしてたんだけど、まさかこんな簡単な方法があったとは。
Easy way to use TDD with internal classes - Sean McAlinden's Blog
常識なんすか!?
namespace Samples { internal class TestInternal { public string Test() { return "TestInternal method"; } } internal static class TestInternalStatic { public static string Test() { return "TestInternalStatic method"; } } }
普通にこんなclassを作ると、Testクラスで↓こうなるもんね。
でも、AssemblyInfo.csに↓この行を追加。
[assembly: InternalsVisibleTo("Samples.Tests")]
※テストプロジェクトのアセンブリ名。今回はSamples.Testsっていうのを作ったのでこの名前。
コンパイルエラーも出ないし、テストも普通に通る。
なんかもう今までのコードを全部書き直したくなってきた...。