我开始使用TDD,并且想知道添加服务引用来测试我的项目是否是一种不好的做法,或者我只是在依赖于WCF服务的测试中嘲笑假服务。WCF + TDD:为您的测试项目添加服务引用:错误?
回答
是的,将服务引用添加到单元测试项目是一种不好的做法。您可以使用生成的服务合约接口来模拟测试中真正的WCF服务行为。
另外,如果您正在测试WCF管道,则可以使用测试框架线程作为主机(MSTEST或其他)。这假定你没有使用像IIS这样的东西作为主机。 – 2010-02-12 22:10:42
与使用服务引用不同,您可以使用服务契约来嘲笑ChannelFactory。
这是什么东西在TDD附近? TDD意味着您先为不存在的服务创建测试,然后在编写失败的测试时实施服务。 – PositiveGuy 2013-10-25 05:27:02
我认为我的句子中的关键词是模拟的。你将得到你的服务实现的契约,然后你会使用一个模拟框架(MOQ等)来给你的测试提供一些东西来运行。就像这里提到的http://fczaja.blogspot.co.uk/2012/10/mocking-wcf-client-with-moq.html。 – Rus 2013-10-25 09:08:56
有一个服务ref可能是一个糟糕的路要走,你可以考虑实现网关模式,例如, IMyFooServiceGateway作为额外的抽象层。通过这种方式,您可以使应用程序更加松散地耦合并获得一些额外的可测试性(在您测试项目中,您会参考包含IMyFooServiceGateway的分离程序集,并手动创建一个实现IMyFooServiceGateway的模拟程序或使用模拟框架,如Rhino Mocks创建一个给你。
如果这是目标,测试的项目有一个服务引用,你不应该有额外的服务引用添加到测试项目。
当添加一个服务引用对于一个项目,通常为其生成的代码包含一个可公开访问的服务接口,因此测试项目只需要引用目标项目就可以看到这个接口,然后这个接口可以放到你的嘲弄中选择图书馆或手动嘲笑。
值得注意的是,生成的接口并不一定遵循接口的典型“IFoo”命名约定,因此它不是很明显。
- 1. 添加WCF服务引用时出错?
- 2. 为wcf服务添加服务引用时出错
- 3. 添加WCF引用错误
- 4. 为什么添加服务引用导致Microsoft.Owin.Security引用错误?
- 5. 添加对WCF服务的引用给出了错误
- 6. 添加WCF服务到ASP.NET MVC项目
- 7. 将WCF服务添加到项目
- 8. 为WCF服务添加Silverlight应用程序的服务引用
- 9. 在同一个项目中添加对WCF服务的服务引用
- 10. 如何测试wcf rest服务vs“单元测试项目”?
- 11. 动态添加WCF服务的引用
- 12. WCF不使用添加服务引用
- 13. 当您添加一个wcf服务引用时,如何在另一个项目下生成wcf配置?
- 14. 如何在Eclipse中为WCF服务“添加服务引用”?
- 15. 使用WCF服务调试Silverlight项目
- 16. WCF:如何做 “添加服务引用” 到SSL服务(遇到错误)
- 17. 测试WCF服务
- 18. 添加WCF服务引用打破
- 19. 向Silverlight项目中的WCF服务添加服务引用默认情况下为DataMembers而不是SOAPSerilaization的XmlSerialization
- 20. 尝试将Web引用添加到WCF服务的HTTP 400错误请求错误
- 21. 用Fitnesse测试WCF服务,我应该添加WebReference吗?
- 22. 安装WCF负载测试实用程序后,无法在VS2010测试项目中添加WCF测试
- 23. 错误测试服务类
- 24. WCF测试客户端错误:无法调用服务
- 25. 调用从测试网站WCF服务方法抛出错误
- 26. 如何加载测试REST WCF服务?
- 27. 编程添加一个WCF服务项目项
- 28. 向解决方案添加启用了AJAX的WCF服务会引发错误
- 29. 为什么不从web项目引用wcf服务?
- 30. 在ASP.Net中添加wcf服务引用时出错mvc
有没有任何文件详细说明这一点? – 2010-02-12 18:50:51
我不明白。你想TDD你的服务?那么这不是TDD,你应该创建TDD方法来创建你的实际服务实现(服务类!) – PositiveGuy 2013-10-25 05:25:36
,并且你应该总是嘲笑一个Web服务,而不是使用代理引用。 – PositiveGuy 2013-10-25 05:26:00