2

我有各种互相交谈的Web服务,有时进行数据库调用和一些与消息队列交谈,但我希望能够测试服务交互彼此没有实际打电话给数据库。微软嘲笑和嘲笑SqlConnection集成测试

有没有一种方法可以在没有实际触及系统外端(即数据库和消息队列)的情况下执行集成测试。

我们的Web服务和数据库不是用DI或可测试性编写的,因此在服务中创建虚假实现并不是真正的选择。我见过创建伪装版本的Microsoft Mocks库,看起来很有前景。

有没有一种方法可以通过微软的假货实现这一点?我们能以某种方式获得服务来调用假的SqlConnection并模拟数据库调用吗?

回答

0

如果你有没有办法使用依赖注入,你可以尝试嘲笑你的数据库层的certian部件

我建议去看一下Repository模式

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

并尝试分离抽象所有的数据库模型,所以当你可以模拟所有这些类使用一些模拟框架,如RhinoMocks

+0

我们现有的数据库层没有实际执行太多的手术,我们不能做一些事情吗?我正在考虑微软的假货和一些方法,以切换到假装配。 – jaffa

+0

如果您为数据库层使用单独的类,则需要在某个地方实例化这些类。你总是可以使用这个类作为一个属性,并尝试使用'模拟物业'嘲笑它 看一看: http://ayende.com/wiki/Rhino+Mocks+Properties.ashx?AspxAutoDetectCookieSupport=1 –