Tramp数据与可测试性

时间:2010-08-17 20:54:50

标签: c# design-patterns architecture refactoring rhino-mocks

我现在没有做太多新的开发,但是对旧的C#子系统进行了大量的重构,其原始要求不再支持新的,我将添加意想不到的要求。我现在也在尽可能使用Rhino Mocks和单元测试(vs 2008)。

我的困境是,为了使方法可测试和可模拟,我需要使用接口定义明确的“契约”。但是,如果我这样做,很多类使用的很多全局数据都会变成tramp数据,从一个方法传递到另一个方法,直到它到达它的目标用户;这看起来很丑陋,反对我的感情,但......可以被嘲笑。制作具有大量静态全局属性的混合包类是一个更有吸引力的选择,但不是Rhino可测试的。两者之间是否存在中间立场?可测试但不太吝啬?模式也许?

您还应该了解这些应用程序在内部企业开发平台上运行,因此每个应用程序都会实例化一次辅助类和服务,然后在整个应用程序中使用,例如数据库访问器助手班。另一个例子是使用一次读取的配置文件,并且由于各种原因在整个应用程序中使用不同的方法。

你的想法很受欢迎。

1 个答案:

答案 0 :(得分:3)

您可能希望在此处看到Service Locator Pattern的某种形式。让他们上课找到自己的流浪汉。

其他一些合理的选择包括将大部分常用内容包装在某种“应用程序上下文”类中。

如果你还没有这样做,你也可能希望研究依赖注入。