Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 测试的目的是什么_Ruby On Rails_Rspec - Fatal编程技术网

Ruby on rails 测试的目的是什么

Ruby on rails 测试的目的是什么,ruby-on-rails,rspec,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 考试通过了,大家都很高兴。但我们真正做到了什么?这当然是一个非常简单的例子,但它表达了我的意思。像这样的测试可以为我提供什么信

我对测试有点了解,但我仍然不知道为什么要在我的应用程序中进行测试。 假设我有这门课

class Human

  attr_accessor :age

  def initialize
    @age = 0
  end
end
这个测试呢

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

考试通过了,大家都很高兴。但我们真正做到了什么?这当然是一个非常简单的例子,但它表达了我的意思。像这样的测试可以为我提供什么信息?

在您的示例中,代码非常琐碎,测试的麻烦远远超过它的价值。如果您将编写非常简单的应用程序(如果它完成了任务,则不会有任何问题),那么就这样吧

但在现实世界中,大多数情况下,出于以下几个原因,您需要编写测试:

  • 要亲自确认代码是否按预期工作
  • 帮助隔离错误发生的位置。您可以查看这些测试,以查看调用链中的哪些组件已经过彻底测试,然后找到没有测试的组件(针对当前案例)。这有助于再现错误并找出其原因
  • 允许自动化。一旦编写完成,测试就可以由持续集成服务器永远运行。这样你就知道,你在路上所做的一些改变并没有破坏曾经有用的东西
  • 文件。当人们加入您的项目时,或者当您需要记住几个月前为什么要这样做时,最好是查看代码,而不是阅读大量枯燥且可能不是最新的文档文本。测试显示了组件应该如何工作和交互
  • 有时候,当我想写一些代码时,我实际上不确定它应该是什么样子,API应该是什么。首先编写一个测试可以帮助我整理出API,并弄清楚我需要做什么
当然,测试的编写成本必须很低,这样随着功能的发展,它们就可以被丢弃。他们还需要快速运行,关于如何做到这一点,有大量的文献。很多团队都不擅长测试,所以测试变得非常麻烦,以至于他们停止了测试。如果你擅长测试,这并不难,测试是非常强大的


希望这能有所帮助。

在您的示例中,代码非常琐碎,因此测试的麻烦远远超过了它的价值。如果您将编写非常简单的应用程序(如果它完成了任务,则不会有任何问题),那么就这样吧

但在现实世界中,大多数情况下,出于以下几个原因,您需要编写测试:

  • 要亲自确认代码是否按预期工作
  • 帮助隔离错误发生的位置。您可以查看这些测试,以查看调用链中的哪些组件已经过彻底测试,然后找到没有测试的组件(针对当前案例)。这有助于再现错误并找出其原因
  • 允许自动化。一旦编写完成,测试就可以由持续集成服务器永远运行。这样你就知道,你在路上所做的一些改变并没有破坏曾经有用的东西
  • 文件。当人们加入您的项目时,或者当您需要记住几个月前为什么要这样做时,最好是查看代码,而不是阅读大量枯燥且可能不是最新的文档文本。测试显示了组件应该如何工作和交互
  • 有时候,当我想写一些代码时,我实际上不确定它应该是什么样子,API应该是什么。首先编写一个测试可以帮助我整理出API,并弄清楚我需要做什么
当然,测试的编写成本必须很低,这样随着功能的发展,它们就可以被丢弃。他们还需要快速运行,关于如何做到这一点,有大量的文献。很多团队都不擅长测试,所以测试变得非常麻烦,以至于他们停止了测试。如果你擅长测试,这并不难,测试是非常强大的


希望这能有所帮助。

在您的示例中,代码非常琐碎,因此测试的麻烦远远超过了它的价值。如果您将编写非常简单的应用程序(如果它完成了任务,则不会有任何问题),那么就这样吧

但在现实世界中,大多数情况下,出于以下几个原因,您需要编写测试:

  • 要亲自确认代码是否按预期工作
  • 帮助隔离错误发生的位置。您可以查看这些测试,以查看调用链中的哪些组件已经过彻底测试,然后找到没有测试的组件(针对当前案例)。这有助于再现错误并找出其原因
  • 允许自动化。一旦编写完成,测试就可以由持续集成服务器永远运行。这样你就知道,你在路上所做的一些改变并没有破坏曾经有用的东西
  • 文件。当人们加入您的项目时,或者当您需要记住几个月前为什么要这样做时,最好是查看代码,而不是阅读大量枯燥且可能不是最新的文档文本。测试显示了组件应该如何工作和交互
  • 有时候,当我想写一些代码时,我实际上不确定它应该是什么样子,API应该是什么。首先编写一个测试可以帮助我整理出API,并弄清楚我需要做什么
当然,测试的编写成本必须很低,这样随着功能的发展,它们就可以被丢弃。他们还需要快速运行,关于如何做到这一点,有大量的文献。很多团队都不擅长测试,所以测试变得非常麻烦,以至于他们停止了测试。如果你擅长测试,这并不难,测试是非常强大的


希望这能有所帮助。

在您的示例中,代码非常琐碎,因此测试的麻烦远远超过了它的价值。如果您将编写非常简单的应用程序(如果它完成了任务,则不会有任何问题),那么就这样吧

但在现实世界中,大多数情况下,出于以下几个原因,您需要编写测试:

  • 要亲自确认代码是否按预期工作
  • 帮助隔离错误发生的位置。你可以看看t