2

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

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

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

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

4

1 回答 1

0

如果您无法使用依赖注入,您可以尝试模拟数据库层的某些组件

我建议看看存储库模式

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

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

于 2013-02-05T16:25:45.090 回答