2013-10-27 163 views
0

我进入了一点测试,但我仍然不知道为什么我应该在我的应用程序中。 可以说我有这个类什么是测试点

class Human 

    attr_accessor :age 

    def initialize 
    @age = 0 
    end 
end 

和本次测试

describe Human do 
    kid = Human.new 
    kid.age.should == 0 
end 

测试通过,每个人的幸福。但是我们真的完成了什么?这当然是非常简单的例子,但它表达了我的意思。像这样的测试信息可以为我提供什么?

+0

您测试得越多,其价值越明显。 –

回答

3

在你的榜样,代码是如此的微不足道,测试是远远更多的麻烦比它的价值。如果你会写出非常简单的应用程序(如果它完成了任务就没有问题),那就这样吧。

大部分在现实世界中的时间,虽然,你需要编写测试有以下几个原因:

  • 要为自己确认代码工作像您期望的。
  • 帮助找出发生错误的位置。您可以查看测试,以查看调用链中的哪些组件已经过彻底测试,然后找到不是(针对该案例)。这有助于您重现错误并隔离其原因。
  • 允许自动化。一旦写入,测试可以永久运行在持续集成服务器上。这样你就知道你在路上做的一些改变并没有打破曾经工作的东西。
  • 文档。当人们加入你的项目时,或者当你需要记住为什么你做了你几个月前做的事情时,看看代码要好得多,而不是阅读很多的文档文本,可能不是最新的。测试显示组件应该如何工作和交互。
  • 有时当我想写一些代码时,我实际上不确定它应该如何看,以及API应该是什么。编写一个测试第一帮助我冲洗的是API,并找出什么,我需要做的。

当然,测试需要便宜,因此随着功能的发展它们可以被丢弃。他们还需要快速运行,并且有大量关于如何做到这一点的文献。很多团队在测试中都很糟糕,所以他们不再那么做了。如果你擅长,但不难,测试非常强大。

希望有所帮助。

+4

如果您进入TDD,测试也将影响您编写代码的方式和您编写的代码种类。 – numbers1311407

+0

我其实刚刚在看到你的评论之前就加了一个类似的评论哈哈。感谢您的出色点。 – Vidya