2011-11-16 115 views
5

寻找关于如何在此处继续的一些建议。集成测试与测试数据库链接的WCF服务

我正在尝试对调用其他wcf服务的wcf服务进行一些集成测试。我想确保它们在彼此之间正确配置。我们目前使用spring.net和Nhibernate。我不确定的是如何检查数据库正在更新而不实际保存任何内容到数据库。

我有我想在这里测试的msmq和wshttp服务。我熟悉事务,因为我们在春季使用它们,但我不知道如何设置我的测试,以便在未通过集成测试直接测试的服务中回退事务。

现在我唯一的选择是使用测试数据库和测试数据,但似乎必须有比这更好的解决方案。

+3

为什么你愿意在**生产**数据库而不是**测试**数据库上测试**软件? – CodeCaster

+0

也许你误会了我?到目前为止我唯一的选择是创建一个测试数据库和测试数据。 –

+1

你能设置所有的服务来使用相同的数据库并共享相同的'SessionFactory'吗? – Marijn

回答

0

我决定使用特定于应用程序的实现。基本上创建一个测试数据库,让我们的应用程序根据传入我们的服务的一些值打到测试数据库。

0

也许你可以使用诸如Moq之类的东西来模拟更新数据库(或DAL层)的服务,避免调用数据库并检查模拟的验证方法是否会执行对数据库的调用。在我们的项目中,我们使用wcf的这个库获得了很好的结果。

+0

如果您想测试服务是否连线正确,这是个不错的主意,但这实际上并不能确认将正确的sql发送到数据库。我认为这是OP的目标。 – Marijn

+0

也许嘲笑数据访问层,而不是wcf服务将做的伎俩。我不知道这是如何实现的,但是如果存在这样的层,很容易看到是否会执行正确的sql而不执行它。 – Diego

+0

是的,我在测试接口时会这样做。但是没有办法对间接被调用的服务进行任何模拟。 –