测试的重点是什么

时间:2013-10-27 15:20:57

标签: ruby-on-rails rspec

我进行了一些测试,但我仍然不知道为什么我应该在我的应用程序中这样做。 假设我有这个课程

class Human

  attr_accessor :age

  def initialize
    @age = 0
  end
end

和这个测试

describe Human do
  kid = Human.new
  kid.age.should == 0
end
测试通过,每个人都开心。但是我们真正做到了什么?这当然是非常简单的例子,但它表达了我的意思。这样的测试信息可以为我提供什么?

1 个答案:

答案 0 :(得分:3)

在你的例子中,代码是如此微不足道,以至于测试比它的价值要麻烦得多。如果你要编写非常简单的应用程序(如果它完成了工作没有任何问题),那就这样吧。

但在现实世界的大部分时间里,你需要编写测试有几个原因:

  • 为自己确认代码是否按预期工作。
  • 帮助隔离发生错误的位置。您可以查看测试以查看调用链中的哪些组件已经过彻底测试,然后找到不适用的组件(对于手头的情况)。这有助于您重现错误并找出原因。
  • 允许自动化。编写完成后,测试可以永久地由持续集成服务器运行。通过这种方式,你知道你所做的一些改变并没有破坏以前工作的东西。
  • 文档。当人们加入你的项目时,或者当你需要记住为什么你做了几个月前做过的事情时,看看代码而不是很多文档文本是很好的,这些文本很难阅读而且可能不是最新的。测试显示组件应该如何工作和交互。
  • 有时当我想编写一些代码时,我实际上不确定它应该是什么样子以及API应该是什么。编写测试首先可以帮助我刷新输出该API并找出我需要做的事情。

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

希望有所帮助。