我有一个包含受保护的构造函数的类,其中包含多个静态工厂方法。我用这些来弄清楚什么参数是指。例如:
MyClass.FromFile(string filename);
MyClass.FromString(string filename);
MyClass.FromParameterSet(...);
我使用它们为不同的构造方法赋予名称/含义(我知道会有人告诉我不要这样做,但是为了争辩,请以这种方式进行讨论)。
但是,在进行单元测试MyClass
时遇到麻烦。我想检查MyClass
是否正确初始化其内部值,因为它执行复杂的操作。当然,它不会暴露它们。通常,填充程序会解决问题,但是使用静态工厂方法时,我无法以与我在“真实代码”中的方式完全相同的方式创建实例,因为它会创建MyClass
而不是{{1} }。
显而易见的答案是不使用静态工厂方法。我可以这样做,但我想知道是否有办法修复此问题。
(如果有人在想的话,我正在使用C#。)