我有被实例化在一个控制台应用程序的启动和存储在静态变量一个记录类。

如果我想使用记录器一类应该它被传递到在构造的类或直接引用?

我试着写单元测试,无论哪种方式,我应该能够做到这一点。只是意味着我有调用使用它的代码之前设置静态变量。

干杯。

没有正确的解决方案

其他提示

听起来你正在寻找的是某种 IoC容器的。你可以使用 EntLib的Unity 或别的类似的。

为使您的类作为单元测试成为可能,所有的依赖关系,包括记录仪,应在尽可能通过。这就是所谓的依赖注入(DI),并且是编写单元测试代码的一个非常常见的标准模式。日志几乎总是一个横切关注点即只嵌入方法体中,因为没有真正像样的AOP框架适当拉这些问题并声明应用它们。有写/运行单元测试只是增加了测试的复杂性,可能增加额外的配置问题,当你真的想保持你的测试一样简单和有针对性地在处理记录。

如何使用静态网关模式

您可以创建它的一个实例,并且例如存储为同一类的成员&返回通过属性。

e.g。 Logger.Default结果 这将返回参考所创建的实例。

编辑:这方面的一个例子可以是Console类及它的放样方法。 我的意思是,你可以继续使用Console.WriteLine ....如果你想改变流,请使用放样方法。它重定向输出到一个新的数据流。

希望有所帮助。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top