可能是重复问题:
测试内部类
我喜欢将我的测试类放在一个单独的程序集中,这导致测试内部类出现了一些问题。由于内部类和方法仅在程序集内可见,因此我的测试程序集无法看到这些类和方法。如何有效地测试这些类?我需要使用反射来访问要测试的方法吗?
可能是重复问题:
测试内部类
我喜欢将我的测试类放在一个单独的程序集中,这导致测试内部类出现了一些问题。由于内部类和方法仅在程序集内可见,因此我的测试程序集无法看到这些类和方法。如何有效地测试这些类?我需要使用反射来访问要测试的方法吗?
我的首选方案是通过使用公共类和方法间接测试它们,就像私有类和方法一样。
不过这取决于情况,我倾向于进行TDD,并且最终几乎不使用internal。我不太喜欢在生产代码中添加属性来使其可测试的想法。
我认为你可能会质疑你的内部类在哪里被使用以及其目的是什么。
如果它存在,那么它一定有自己的使命。而这个使命可能会影响到某些东西;例如另一个对象的状态。
因此,通过测试“另一个”对象,您可能有机会间接地测试您的内部类。
但是,好的开始可以是质疑是否真的有必要拥有那个内部类。如果您的意图是编写可测试的测试驱动开发(TTDD),则您的设计可能需要另一种架构。