【问题标题】:Unit Testing for an Absolute Beginner - I'm using Ruby绝对初学者的单元测试 - 我正在使用 Ruby
【发布时间】:2011-07-06 05:33:02
【问题描述】:

我意识到我确实需要开始学习与单元测试相关的行为和模式,特别是 ruby​​,因为我可以将这些知识迁移到其他语言。有没有关于如何开始的非常好的例子?我遇到的问题是,对于我正在使用和工作的当前系统,开始进行单元测试似乎是不可逾越的。

我从来没有为操作代码构建过一个单元测试,除了尝试相同的十五个左右的在线教程来向您展示 ruby​​ 的核心类似乎运行良好。我需要知道如何为我自己的系统构建这些测试,以及寻找和测试什么的心态。

有哪些好的在线教程向您展示如何做更多的事情,而不仅仅是测试 assert_true 为真而反之为假?即使它们不适合 ruby​​,我应该阅读或阅读哪些必读和必须实验的单元测试指南?最好有一步一步的教程。

诸如在实际现有模型和框架中使用这些单元测试以及实际测试什么?我仍在努力理解测试的心态,并且不断被不同的元素所牵制。没有人真正具体概述过您需要以何种心态进行单元测试,因为所有编写指南或教程的人似乎都已经内化了您处理系统的逻辑。

任何帮助将不胜感激。

【问题讨论】:

  • 7 年后在这里添加评论,Rspec 书帮助了我,现在我不仅可以用 ruby​​ 对东西进行单元测试,而且我有信心用多种语言进行测试。学习单元测试工作使我成为了一个更好的开发人员,并帮助我构建了更健壮和可维护的软件。我强烈推荐它。

标签: ruby unit-testing testing


【解决方案1】:

从技术上讲,它是 BDD,但我会推荐 The RSpec Book,因为它很好地解释了概念并提供了扩展教程。本书的第二部分涵盖了 Cucumber,因此它也会教给您。

【讨论】:

    【解决方案2】:

    我知道这是一个 perl 教程,但我认为它对方法/哲学非常有用:cromatic's and Michael G Schwern's Test::Tutorial pdf。这是我读到的第一个教程,说要让你的测试先失败,还有很多其他的好技巧。

    【讨论】:

      【解决方案3】:

      很容易被转移到细节中去,比如代码覆盖工具,比如 rcov,甚至更详细的工具,比如 heckle, flog, flay。这些工具很棒,它们可以追踪错误,但它们应该是与设计和文档相关的单元测试的次要工具。

      我觉得这是总结 - 来自 agile TDD 页面

      • “编写单元测试的行为更像是一种设计行为,而不是一种验证行为。”
      • “这也是一种记录行为,而不是验证行为”

      【讨论】:

      • 单元测试不是 TDD,TDD 也不是单元测试。 TDD 使用单元测试工具来创建所需结果的规范。单元测试测试最小的可合理测试的单元。正如您所指出的:TDD 根本不是一种测试方法,不应被视为这样。
      猜你喜欢
      • 2010-10-03
      • 2015-04-27
      • 2020-08-15
      • 2014-06-21
      • 1970-01-01
      • 1970-01-01
      • 2018-02-09
      • 1970-01-01
      • 2020-09-11
      相关资源
      最近更新 更多