所有伟大的故事他们总是以这四个神奇的词开始..。我继承了一个制度..。不等等!这不对!
无论如何,随着我的幽默尝试现在已经过去,我还没有得到更多的帮助,我不得不支持现有的服务。
在使用此服务时存在许多问题,例如,要创建一个人的记录,您需要调用服务的4个不同部分。
因此,我们和Manager一起决定,我们需要在顶部添加另一层,为常见的请求添加一个外观,以简化创建新站点时的数量和正确的顺序。
我的问题从这里开始,如果有人想避免上述华夫饼
因此,我希望在我所做的工作中使用TDD,但我继承的服务(它将成为我们的数据层)已经与位于Web.Config中特定connetionstring节点中的数据库连接字符串强耦合。
我的问题是,要将服务与Config文件分离,需要花费几个星期的时间,而我没有时间。
因此,我不得不将带有预期节点的App.Config文件添加到我的测试项目中。
这样做可以吗?还是应该开始投入一些时间将数据库配置与数据层分离?
发布于 2010-06-19 02:11:56
我同意您应该考虑在代码中使用依赖项注入来将应用程序与配置分离开来,然而,我也理解这样做并不是一件容易的事情。
因此,要直接回答您的问题,没有,添加一个配置文件来支持您的测试没有任何问题。实际上,这在单元测试遗留系统(遗留系统是一个未经测试的系统)中非常常见。在没有其他选项的情况下,我还利用反射将假配置值“注入”到ConfigurationManager中,以测试读取配置值的代码,但这可能是最后的手段。
发布于 2010-06-18 14:11:34
尝试使用依赖注入来模拟您的DataLayer。
在TDD中,您不是(必然)测试数据层和数据库,而是测试BusinessLogic。
一些链接:
发布于 2010-06-18 14:16:51
您可以使用依赖项注入从web.config (或app.config )中“解开”代码:
http://weblogs.asp.net/psteele/archive/2009/11/23/use-dependency-injection-to-simplify-application-settings.aspx
https://stackoverflow.com/questions/3070237
复制相似问题