2009-02-24 60 views
10

我想知道如何在使用visual studio 2008(.net 2.0)的现有(相当大)的应用程序中实现单元测试。单元测试新手

据我所知,为现有/遗留代码开发单元测试是不现实的,但我想测试代码向前移动。

我发现了很多关于如何编写代码测试的示例,但没有提供关于如何在现有项目上从头开始设置的示例,以及如何将其集成到开发周期中。

回答

5

简单的方法:

  • 选择的单元测试框架之一(NUnit的,MbUnit的,的xUnit,VS单元测试框架,...)为单元测试
  • 添加项目在解决方案(比如单元测试)。
  • 开始写测试。

为了便于组织,创建于溶液中每个项目至少一个命名空间,例如UnitTest.Project1,UnitTests.Project2,......根据项目的大小,添加更多的级别来命名。

这种方式的测试项目是解决方案的一部分。如果您使用一些持续集成工具,那么测试可以在每次提交到源代码存储库时自动执行。

编辑:
关于对MS单元测试框架问题与创建单元测试的评论,有知道的问题:"Create unit test" wizard does not work。它看起来有不支持的类型的项目,防止单元测试向导正常工作。我刚刚尝试过一种具有一个F#和多个C#项目的解决方案。我添加了单元测试项目并尝试添加测试。测试向导有问题,直到我卸载F#项目。然后一切正常。

1

我强烈建议您阅读本书:Working Effectively with Legacy Code如果您想对现有代码进行单元测试。这也是一本关于通用单元测试最佳实践的好书。

可以对现有项目进行单元测试,但您必须在此处进行一些调整以使代码可测试。太多依赖性往往是问题。

编辑(您的评论之后) 如果你真的想将单元测试嵌入到你的开发周期中,那么你应该去TDD(Test Driven Development)。这里的目标是首先编写你的单元测试,这样你就能很好地理解你的课程将会做什么。当然,这些测试会失败,但目标是让他们一个接一个地工作。在TDD上做一个谷歌,那里有很多信息。

+0

是的,我知道它有点徒劳在这个阶段实现它,但是我们再次得到下手的机会为新建项目..因为架构变化,我想从一开始就实施单元测试,并且认为Id现在得到了一个开始..(因此问题) – CodeKiwi 2009-02-24 09:08:16

+0

呵呵?我不明白 – CodeKiwi 2009-02-24 09:20:27

+0

Gerrie,是TDD是我们正在研究的那一刻,我想付诸实践的一些单元测试,现在的部分原因, – CodeKiwi 2009-02-24 09:24:23

3

使用现有代码进行测试的一个简单方法是在发现错误时编写测试的策略。

i。Ë

  • 查找错误
  • 写测试,recplicates错误
  • 修复