如何让wcf服务负责选择连接字符串并很好地清理没有基类的单元测试

时间:2014-06-26 22:26:31

标签: wcf unit-testing inheritance

当我们编写新代码时,我们首先对我们的本地数据库进行测试,然后我们针对共享开发数据库对其进行测试。我们所有的服务调用都将ServiceCallContext对象作为参数使用,其中包括为数据库连接选择适当的连接字符串。在这些服务的webconfig中,我为" Local"添加了连接。和#34;共享发展"这指向本地和共享开发数据库。

我的第一个倾向是创建一个所有服务都可以继承的通用基本服务类。泛型参数将是一个代理类,基类将负责使用适当的连接字符串(它根据ServiceCallContext从webconfig中选择)创建此代理。

ServiceCallContext还包含一个属性,服务可以查看该属性以查看它是否从单元测试中调用,如果是,它会保留它创建的代理并重新用于后续调用。这样做的原因是单元测试中的所有内容都可以在单个事务上运行并在最后回滚。当然,如果某个特定服务需要调用另一个服务,这会产生一个潜在的问题,因为它没有任何方式来共享该事务,所以它可能会锁定一个表,即服务它&# 39;呼叫需要使用。

我的团队负责人并不喜欢开始使用基础服务课程的想法,我倾向于同意他的观点,但它确实让我们90%的生活变得更轻松。我想知道的是,WCF是否提供了更好的方法来通过某种扩展来完成相同的事情,这些扩展比使用基类更好?

0 个答案:

没有答案