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っていうのを作ったのでこの名前。
コンパイルエラーも出ないし、テストも普通に通る。
なんかもう今までのコードを全部書き直したくなってきた...。