minitest,test :: unit和rails

jro*_*ind 28 ruby ruby-on-rails testunit minitest

我读到某个地方'minitest'是"ruby 1.9.2+的新测试::单位".

但是Ruby 1.9.3似乎包括两个 测试::单位 MINITEST,是真的吗?

在默认轨测试,在列出的Rails测试指南 ....之类的东西ActiveSupport::TestCase,ActionController::TestCase被这些使用Test::UnitMinitest

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

test "should show post" do
  get :show, :id => @post.id
  assert_response :success
end
Run Code Online (Sandbox Code Playgroud)

test string与定义类似名称的方法相反,该语法test_something任何一个 Test::Unit或Minitest 的文档中没有提到.来自哪里?Rails是否添加它,或者它实际上是...的一部分......无论是测试lib rails使用的是什么?

PS:请不要告诉我"只使用rspec".我知道rspec.我试图在rails的上下文中探索stdlib替代方案.

Mic*_*ade 17

Test::UnitMinitest附带了一个"兼容性"模块,因此您可以(可能)按原样使用现有的Test :: Unit测试.这可能是Test::Unit您看到的模块.

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

test "something" do语法是轨道的延伸.它的定义ActiveSupport::Testing::Declarativerequire'd by rails/test_help.

  • "兼容性"模式是一个笑话 - 他们不打扰匹配断言*函数命名约定,它只是从那里走下坡路. (3认同)

Tra*_*vis 5

这可能是一个切向响应,但是对于你的rspec注释...你可能想看看minitest/spec哪个在1.9.x中的stdlib中提供了spec flavor语法.

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