我继承了一个没有自动化测试一个合理的规模ASP.net的解决方案。 该解决方案似乎包括所有与没有名字的间距,无层分离的一个解决方案的源/页,所以有内部文件等后台代码直接SQL调用
在更改这个网站之前,我想补充一些单元测试,最好使用NUnit的,因为我熟悉的xUnit模式,给我一些信心,我没有破坏任何东西。 我没有太多的经验。NET,特别是我不知道何时使用项目VS解决方案等,虽然我熟悉C#的基本语法等。
什么是增加单元测试解决方案的推荐方法是什么? 我应该为测试一个单独的解决方案/项目,然后添加对现有解决方案的合适的元素,或者我应该建立在现有解决方案中的一个单独的项目来测试套件。
我真的在寻找这两种方法的利弊,或者甚至另一种方法完全。 什么是最好的办法人民的经验来实现这一目标。
我不知道,你可以用单元测试开始。 记住第一条规则是“不要打破什么工作”,我会建议开始使用像华廷或硒一些集成和回归测试。 这两个框架可从运行单元测试框架,如NUnit的集成测试。 Telerik的做一个很好,但它不是免费的,我还没有使用过。
一旦你有了到位,就可以开始将代码与你没有打破的网站知识层的过程。 这是再为大家介绍单元测试的好时机。
这个我想先有一个项目,里面所有的单元测试的,具有包含要测试的类项目引用做。 我相信这也是你的层次分成项目很好的做法。
我将在同一个解决方案不同项目测试,所以他们不会与产品版本一起分发。
看看迈克尔羽毛与遗留代码有效的工作 ,他有一吨在未经测试的代码引入的单元测试技巧。
有重构,使单元测试更容易,不更改程序逻辑(例如内置在Visual Studio中的),你可以使用那些在初始阶段,以提高你的程序结构。
不要害怕让你的代码“雪上加霜”在初始阶段,使单元测试(如制作方法或属性市民,应该是私有还是让一切虚拟的),只要你让代码更好,当你测试是在地点。
这包括暂时将测试生产代码本身:第一业务测试代码,您可以稍后移动测试。
我还建议由迈克尔羽毛修改代码读取工作有效。
至于解决的结构与传统的代码工作时,我通常会令现有的解决方案文件的副本,将其称为<> Test.Sln,并添加一个新的单元测试项目到新创建的解决方案文件。
我添加其他测试项目的集成测试,因为我喜欢把单元测试与集成测试分开。
文章来源: What is the accepted practice for adding Nunit tests to an existing solution?