【发布时间】:2011-08-28 18:38:05
【问题描述】:
我的程序中有一个静态类。在静态构造函数中,我创建了服务实例。服务的代理是单例。
我必须为这个类编写单元测试,当然我想隔离这个服务。 我该怎么做?
在我的项目中,我们使用 Rhino.Mocks。
【问题讨论】:
-
已显着编辑。如果我搞砸了,请随意回滚或进行其他修复:)
-
只是...不要写单例。如果你想测试你的代码,第一步必须是实际编写可测试的代码。单身人士不是,这只是one of their many problems。
-
我同意其他人的观点,即依赖注入是最好的方法。如果这对现有代码的重构过于重要,那么您还可以为您的单例添加
public static设置器,这样至少您可以替换实例。确保给这些设置器起一个名字,确保它们只会在单元测试中被调用(例如public static void SetInstanceForUnitTests(IMyService service)) -
我无法通过存根为更改服务添加属性。我在静态承包商中创建服务实例。
标签: c# unit-testing rhino-mocks nunit-2.5