.net - Microsoft mocks 和 mocking out SqlConnection 用于集成测试

标签 .net web-services testing integration-testing microsoft-fakes

我有各种相互通信的 Web 服务,有时进行数据库调用,有些与消息队列通信,但我希望能够测试相互交互的服务,而无需实际调用数据库.

有没有一种方法可以执行集成测试,而无需实际触及系统的外部末端,即数据库和消息队列。

我们的网络服务和数据库在编写时并没有考虑到 DI 或可测试性,因此在服务中创建伪造的实现并不是真正的选择。我见过 Microsoft Mocks 库,它创建了程序集的假版本并且看起来很有前途。

有没有一种方法可以使用 Microsoft fakes 来实现这一点?我们能否以某种方式获得服务来调用伪造的 SqlConnection 并模拟数据库调用?

最佳答案

如果你没有办法使用依赖注入(inject),你可以尝试模拟数据库层的 certian 组件

我建议看看存储库模式

http://www.codeproject.com/Articles/526874/Repositorypluspattern-2cplusdoneplusright

并尝试分离和抽象所有 DB 模型,因此在您可以使用 RhinoMocks 等模拟框架模拟所有这些类之后

关于.net - Microsoft mocks 和 mocking out SqlConnection 用于集成测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14711831/

相关文章:

c# - NET 3.5 中的 c# 应用程序/解决方案,但需要引用 NET 4.0

c# - 无法在我的 C# 应用程序中添加静态端口映射

java - 不支持基于 https 协议(protocol)的地址 - javax.xml.ws.Endpoint

android - 从 WEBSERVICE 获得响应

java - Web 服务以客户端语言响应 - 如何?

javascript - 开 Jest - TypeError : Cannot read property 'fn' of undefined

c# - 在 ASP.NET MVC 3 中初始化一个空白的 dbSet

c# - 如果该方法没有自己的 XML 注释,则在该方法实现的接口(interface)上获取 Intellisense

ruby-on-rails - 为什么 spec_helper 有这个 ENV ["RAILS_ENV"] ||= "test"?

caching - 模拟 Akamai 缓存环境