如何解决C#.NET Core-工厂方法与构造方法
我有一个带有仅设置私有属性的构造函数的类。此类在许多自动化测试中使用,我需要添加另一个私有属性。有什么好的方法可以避免在测试方法中更新类的实例? 我应该重载构造函数还是使用工厂模式?
我认为当新的私有属性在测试用例(例如添加ILogger)中不重要时,我可以重载构造函数,但是如果测试用例中需要私有属性,则最好使用工厂方法。 你有什么建议?
解决方法
您真的想坚持通过构造函数为所有依赖项(例如ILogger或诸如此类)进行依赖项注入。这样,您就可以正确利用ASP.NET Core依赖项注入。
对于您不想在单元测试场景中使用的依赖项,您可能想使用MOQ,Fake It Easy或类似框架来模拟它。
这样,您可以肯定地知道,一旦创建了类,ILogger等将存在并且有时可能不为null并设置其他时间。
,这就是我的理解;所以我分享是为了帮助别人。
工厂模式是关于创建s.th的,因此命名为Factory。如果构造函数变得复杂,或者内部方法涉及创建类(即对象)的实例,则表明使用了工厂方法。
例如您想本地化实例化复杂对象的逻辑
如果您有FooFactory类,则该类将创建Foo的实例,并封装实现的详细信息。
因此仅配置依赖项注入的构造函数不应使用Factory模式。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。