【问题标题】:Microsoft mocks and mocking out SqlConnection for integration testingMicrosoft 模拟和模拟 SqlConnection 以进行集成测试
【发布时间】:2013-02-05 16:09:49
【问题描述】:

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

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

我们的 Web 服务和数据库在编写时并未考虑 DI 或可测试性,因此在服务中创建虚假实现并不是一个真正的选择。我已经看到了 Microsoft Mocks 库,它创建了虚假版本的程序集,看起来很有前途。

有没有办法使用微软的假货来实现这一点?我们能否以某种方式让服务调用虚假的 SqlConnection 并模拟数据库调用?

【问题讨论】:

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


    【解决方案1】:

    如果你无法使用依赖注入,你可以尝试模拟你的 DB 层的某些组件

    我建议看看存储库模式

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

    并尝试分离和抽象所有 DB 模型,以便您可以使用诸如 RhinoMocks 之类的模拟框架模拟所有这些类

    【讨论】:

    • 如果不对我们现有的数据库层进行过多的手术,我们就不能做点什么吗?我在想微软的假货和一些切换到假程序集的方法。
    • 如果您为 DB 层使用单独的类,您需要在某个地方实例化这些类。您始终可以将此类用作属性并尝试使用“按属性模拟”来模拟它看看:ayende.com/wiki/…
    猜你喜欢
    • 2017-01-23
    • 1970-01-01
    • 2012-04-25
    • 2019-11-24
    • 2019-05-21
    • 1970-01-01
    • 2013-08-05
    • 2021-11-10
    • 1970-01-01
    相关资源
    最近更新 更多