【问题标题】:Which testing tools do what in Ruby?哪些测试工具在 Ruby 中做了什么?
【发布时间】:2010-06-30 13:27:21
【问题描述】:

我的意思是,哪些工具用于单元测试,哪些用于 BDD,甚至有明显的区别吗?

我刚刚从 C# 学习 Ruby,我熟悉的工具有用于纯单元测试/TDD 的 xUnit-style 和用于 BDD/集成测试的 Cucumber/SpecFlow。当然,如果您愿意,也可以使用单元测试工具进行集成测试。

我遇到的 Ruby 的主要测试工具是 Test::Unit、RSpec 和 Cucumber(显然还有很多,但这些似乎是最受欢迎的,因此可能是一个不错的选择) .

我不是在这里寻找一长串工具 - 如果有我错过的主要竞争者,请告诉我,但我宁愿在这个阶段保持简单,而不是开始使用带有在 MegaChode 平台上运行的库 X 扩展或其他任何东西。毕竟,我只是一个糊涂的 .Net 家伙!

很明显,Test::Unit 是为单元测试而设计的,而 Cucumber 是为 BDD 设计的。但我不确定 RSpec - 有些人似乎将其用作低级单元测试工具,而其他人则将其用作高级 BDD。同时,有些人似乎将 Test::Unit(和类似的)与 BDD 的其他库一起使用。

为了让您了解我的出发点,我认为您可以使用您的 BDD 工具编写更多功能性、可测试的规范(业务人员可能会理解),然后进行低级,在实现 Cuke(或其他)所需的功能时,使用单元测试工具以开发人员为中心的 TDD。

在 Ruby 中是否有一种普遍接受的方式来做这些事情,或者我是否需要忘记这种疯狂的想法并使用任何似乎可以完成工作的东西?

干杯, 授予

【问题讨论】:

    标签: ruby unit-testing testing bdd


    【解决方案1】:

    我认为大多数 Ruby 专家已经标准化了 RSpec 而不是 Test::Unit 进行测试。如果你在做 Rails 应用程序,有 RSpec-Rails 和 Cucumber,你可以在它上面分层。

    获取一份 The Rspec Book @http://www.pragprog.com/titles/achbd/the-rspec-book

    【讨论】:

    • 我同意 ryw。与您来自相同的 c#/测试背景,Grant,您应该会发现 rspec 非常易于使用。它也对我在 C# 中进行测试的方式产生了重大影响。
    【解决方案2】:

    MiniTest 包含 xUnitspec 风格的测试界面(能够将它们组合在同一个文件中)。

    自 Ruby2.2 起,它作为标准 gem 的一部分包含在内。

    两者都可以包含在同一个文件中,这样可以很容易地在样式或其他测试工具(如 RSpecTest::Unit

    之间进行转换
    require 'minitest/autorun'
    
    describe Math do
      describe 'addition' do
        it '1+1=2' do
          (1+1).must_equal 2
        end
      end
    end
    
    class MathTest < Minitest::Test
      def test_1_plus_1_equal_2
        assert_equal 2, 1+1
      end
    end
    

    MiniTest 还包含一个模拟框架(虽然我更喜欢rr

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-02
      • 1970-01-01
      • 1970-01-01
      • 2018-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多