单元使用内部构造函数测试类

Leo*_*tin 20 c# nunit unit-testing

我有一个名为"Session"的类,它暴露了几个公共方法.我想对Unit进行单元测试,但是在生产中我需要控制"Session"对象的实例化,因此将构造委托给SessionManager类并使Session的构造函数内部化.

理想情况下,我希望将Session类与SessionManager隔离开来,它创建它/它们来证明Session公开的公共接口按预期工作 - 但不能使用SessionManager实例化一个Session而不使用SessionManager测试比他们需要的更复杂/更少有用.

处理这个问题的最佳方法是什么?

干杯,

莱尼.

Mat*_*ias 46

没有什么能阻止你测试内部.通过使用InternalsVisibleTo属性,只需使代码的内部对测试套件可见:在AssemblyInfo中,添加

[assembly:InternalsVisibleTo("TestSuiteAssembly")]
Run Code Online (Sandbox Code Playgroud)