2011-04-03 71 views
0

我一直在寻找单元测试的主题,老实说,我从来没有在实时应用程序中看到它。单元测试的要点

我对这个问题有点模糊...... 一个简单的例子是,如果我用数据填充列表框,我会通过调试知道如果数据正在填充,如果它不是很容易找出原因。此外,如果它不工作,我不可能将其投入生产,为什么我需要做单元测试?我没有看到它的重点。

回答

6

如果您正在使用的网站的一个完全不同的领域,但由于你的代码构建的方式,你所做的更改打破了填充数据的列表框的代码?需要多长时间才能发现?更糟糕的是,如果是谁做出了这样的改变,那么其他人呢?有人不知道列表框填充代码如何工作?甚至有人不知道代码来填充列表框?

单元测试为您提供了一套测试,可以确保您在程序中已经被证明可以正常工作的区域不会出现退步并引入错误,因为您在每次更改和重构后都运行单元测试。单元测试可让您无需恐惧地编程

此外,通过将您的代码设计为可测试,您必须创建一个松散耦合的架构,并遵循大量最佳实践,例如,依赖注入。

3

的一点是,通过使用单元测试你确定每类的如预期运行。

什么是该值,除了知道它的工作原理在一定条件下?

当你重构你的代码,更改设计,返工(据说)无关的代码,如果你的测试仍然正常运行,你知道你有没有违反任何功能。

单元测试是既要确保该代码编写符合您的期望,它的任何变化仍符合他们。

+0

我认为@Oded总结得非常好:“关键是通过使用单元测试你可以确定每个类都按照预期工作。我会在单元测试中补充说明,即使系统的其他部分发生变化,并且其他人来来去去,我们也会确保您的班级按照预期工作*今天,明天,即将开始的一个月。 – 2011-04-04 12:38:21

0

使用测试有许多优点和缺点。莫名其妙地看Art Of Unit Testing,这本书大大涵盖了单元测试的主题。此外,你可以找出为什么你应该做单元测试。

在您的例子,假设您设置了约15网页,检查列表框,组合框和其他数据的填充。您需要使用调试来测试它,浏览器重新加载,鼠标点击,断点命中和运行多少?许多。但通过单元测试,核心规则之一就是测试应该简单地通过单击来运行。如果你设计的单元测试正确,你可以测试成千上万的代码与单击

0

单元测试会给你一个机会来测试你的逻辑,而无需击中sql服务器和解雇Cassini或IIS Express。 (当然,您需要首先在您的主项目上实施依赖项注入,并在您的测试应用程序中模拟它们)

想想你已经写了数百种测试方法。你会批量运行所有的测试方法。这可能需要几分钟时间,具体取决于您的数据结构。如果您在项目中实施依赖注入并在测试中嘲笑它们,那么购买它需要相当长的时间。

这里是你能找到的依赖注入的好文章来源:这是我的原因,使用单元测试的http://haacked.com/archive/2007/12/07/tdd-and-dependency-injection-with-asp.net-mvc.aspx

。如果你的项目真的够大,我认为你也应该考虑Test-driven development (TDD)