【发布时间】:2010-10-14 14:04:19
【问题描述】:
我目前正在使用 Castle Windsor 2.1 版作为我的容器,并希望使用注册的服务执行集成测试。
目前,我使用Common Service Locator 来检索我的服务实例并对其执行集成测试:
var myService = ServiceLocator.Current.GetInstance<IMyService>();
// do stuff with myService
我最理想的做法是让我的服务依赖项自动注入到我的 NUnit 测试装置中。 Spring 似乎提供了this functionality,但我无法使用 Castle 找到类似的东西。
谁能指出我正确的方向?
编辑:
我相信每个人都对这是否是一个好的想法有(有效的)观点;让我们假设它是在这种情况下...谁能告诉我这如何使用 Windsor 来完成?
【问题讨论】:
-
单元测试需要您的服务吗?您是否尝试过使用 Moq、RhinoMocks 或 NMock 等模拟框架?如果您确实在测试组件和服务之间的集成,那么只需根据需要创建尽可能多的 Castle 配置文件,并使用 XmlConfigurator 在您的普通或自定义 Castle 容器中加载它们
-
@johnny g:我正在执行集成测试;这意味着我不想使用模拟,而是使用实际服务及其所有实际依赖项。按照您的建议,我在单元测试装置中使用了模拟。
-
哎呀!这很尴尬 - 阅读 NUnit 并突然“看到”无处不在的单元测试,显然你对集成非常明确:)
标签: dependency-injection nunit castle-windsor integration-testing