我有各种相互通信的 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/