【问题标题】:minitest, test::unit, and railsminitest、test::unit 和 rails
【发布时间】:2012-05-13 17:53:16
【问题描述】:

我在某处读到“minitest”是“ruby 1.9.2+ 的新测试::unit”。

但是 ruby​​ 1.9.3 似乎包含 both test::unit minitest,是这样吗?

在默认的 Rails 测试中,如Rails testing guide.... 中所述,ActiveSupport::TestCaseActionController::TestCase 之类的东西是使用Test::Unit 还是Minitest

在 rails 指南中,它显示了测试定义如下的示例:

test "should show post" do
  get :show, :id => @post.id
  assert_response :success
end

test string 的语法与使用 test_something 之类的名称定义方法相反——在 Test::Unit 或 Minitest 的文档中都没有提及。那是从哪里来的? Rails 是在添加它,还是它实际上是...任何测试 lib rails 正在使用的一部分?

PS:请不要告诉我“只使用 rspec”。我知道rspec。我正在尝试在 rails 的上下文中探索 stdlib 的替代方案。

【问题讨论】:

    标签: ruby-on-rails ruby testunit minitest


    【解决方案1】:

    Minitest 附带了一个Test::Unit“兼容性”模块,因此您可以(大概)按原样使用现有的 Test::Unit 测试。这可能就是您看到的Test::Unit 模块。

    从 rails 3.2.3 开始,生成器创建的测试包括 rails/test_help,其中包括 test/unit

    test "something" do 语法是 Rails 扩展。它是ActiveSupport::Testing::Declarative 中的defined,它是require'd by rails/test_help

    【讨论】:

    • “兼容性”模式是个笑话——他们不会费心匹配 assert* 函数的命名约定,它只是从那里走下坡路。
    【解决方案2】:

    这可能有点切题,但至于您的 rspec 评论...您可能想看看 minitest/spec,它在 1.9.x 的 stdlib 中提供了规范风格的语法。

    http://bfts.rubyforge.org/minitest/MiniTest/Spec.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-02
      • 1970-01-01
      • 2011-10-29
      • 1970-01-01
      • 1970-01-01
      • 2012-06-04
      • 1970-01-01
      相关资源
      最近更新 更多