【发布时间】:2012-08-16 00:42:06
【问题描述】:
我有一个与 WCF 服务交互的类库,并使用 app.config 文件进行配置。我想对这个类进行单元测试,但是当我运行单元测试时,我得到:
在服务模型客户端配置部分中找不到引用合同“FooService”的默认端点元素。这可能是因为没有为您的应用程序找到配置文件,或者因为在客户端元素中找不到与此合同匹配的端点元素
根据this answer,我需要app.config 文件驻留在我的单元测试项目中,这确实解决了问题。但我真的不想每次更改时都将我的app.config 文件复制到单元测试中。
我想我可以添加一个指向app.config 的链接,除了我使用SlowCheetah 来处理app.config 转换,所以我的app.config 是在编译时生成的。
我可以做些什么来让它工作,还是我只需要放弃我的app.config 并在代码中处理配置?
【问题讨论】:
-
单元测试不应该关心 app.config,因为每个类都应该独立于解决方案的其余部分进行测试。您是否已将项目参考导入到测试解决方案中?
-
确实需要将 web.config
复制到测试项目的 app.config 中。为了简化这一点,我为服务模型部分创建了一个单独的 .config 文件,并从需要使用它的所有 .config 链接到它。这样我就可以在一个地方对整个解决方案进行更改。 -
@Forty-Two,这听起来是个不错的解决方案,尽管对我来说,我认为我无法在这种情况下使用配置转换。
-
您的客户端是否有一个构造函数重载,您可以在其中传递连接信息?
标签: c# .net visual-studio-2010 wcf .net-4.0