什么是添加NUnit的测试,以现有解决方案的接受的做法?(What is the accepted

2019-10-18 01:44发布

我继承了一个没有自动化测试一个合理的规模ASP.net的解决方案。 该解决方案似乎包括所有与没有名字的间距,无层分离的一个解决方案的源/页,所以有内部文件等后台代码直接SQL调用

在更改这个网站之前,我想补充一些单元测试,最好使用NUnit的,因为我熟悉的xUnit模式,给我一些信心,我没有破坏任何东西。 我没有太多的经验。NET,特别是我不知道何时使用项目VS解决方案等,虽然我熟悉C#的基本语法等。

什么是增加单元测试解决方案的推荐方法是什么? 我应该为测试一个单独的解决方案/项目,然后添加对现有解决方案的合适的元素,或者我应该建立在现有解决方案中的一个单独的项目来测试套件。

我真的在寻找这两种方法的利弊,或者甚至另一种方法完全。 什么是最好的办法人民的经验来实现这一目标。

Answer 1:

我不知道,你可以用单元测试开始。 记住第一条规则是“不要打破什么工作”,我会建议开始使用像华廷或硒一些集成和回归测试。 这两个框架可从运行单元测试框架,如NUnit的集成测试。 Telerik的做一个很好,但它不是免费的,我还没有使用过。

一旦你有了到位,就可以开始将代码与你没有打破的网站知识层的过程。 这是再为大家介绍单元测试的好时机。

这个我想先有一个项目,里面所有的单元测试的,具有包含要测试的类项目引用做。 我相信这也是你的层次分成项目很好的做法。



Answer 2:

我喜欢在同一个解决方案的新项目。

优点:

  1. 您的测试总是编译在同一时间下测试的代码。
  2. 你的测试代码是在一个单独的组件,所以你总是在测试的公共接口。
  3. 由于您的测试是不是在同一个项目的代码测试下你不必与应用程序部署测试。

缺点:

  1. 您创建一个命名空间的平行层次结构,如果你在测试移动代码身边,你应该保持。 像ReSharper的工具使它更容易些。
  2. Visual Studio是一个慢一点的时候有很多的项目。 不为项目数量较少的问题。


Answer 3:

我将在同一个解决方案不同项目测试,所以他们不会与产品版本一起分发。

看看迈克尔羽毛与遗留代码有效的工作 ,他有一吨在未经测试的代码引入的单元测试技巧。

有重构,使单元测试更容易,不更改程序逻辑(例如内置在Visual Studio中的),你可以使用那些在初始阶段,以提高你的程序结构。

不要害怕让你的代码“雪上加霜”在初始阶段,使单元测试(如制作方法或属性市民,应该是私有还是让一切虚拟的),只要你让代码更好,当你测试是在地点。

这包括暂时将测试生产代码本身:第一业务测试代码,您可以稍后移动测试。



Answer 4:

我还建议由迈克尔羽毛修改代码读取工作有效。

至于解决的结构与传统的代码工作时,我通常会令现有的解决方案文件的副本,将其称为<> Test.Sln,并添加一个新的单元测试项目到新创建的解决方案文件。

我添加其他测试项目的集成测试,因为我喜欢把单元测试与集成测试分开。



文章来源: What is the accepted practice for adding Nunit tests to an existing solution?