2012-05-13 103 views
27

我在某處讀到'minitest'是「ruby 1.9.2+的新測試::單元」。minitest,test :: unit和rails

但是Ruby 1.9.3似乎包括test::unitminitest,是真的嗎?

在默認軌測試,在Rails testing guide ....東西概括像ActiveSupport::TestCaseActionController::TestCase,在這些使用Test::UnitMinitest

在軌道導向件,它示出了具有這樣定義的測試例子:

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

即語法,test string,而不是限定與名稱的方法等test_something - 未在文檔爲提到或者Test::Unit或Minitest。那來自哪裏?是Rails添加它,還是它實際上是...的任何測試lib軌道使用的一部分? PS:請不要告訴我「只使用rspec」。我知道rspec。我試圖在rails的上下文中探索stdlib的替代方法。

回答

16

Minitest附帶有一個Test::Unit「兼容性」模塊,因此您可以(大概)按原樣使用您現有的Test :: Unit測試。這可能是您看到的Test::Unit模塊。

從第3.2.3條開始,發電機創建的測試包括rails/test_help其中包括test/unit

test "something" do語法是一個軌道擴展。它的定義見ActiveSupport::Testing::Declarative,這是require'd rails/test_help

+3

的「兼容性」模式是一個笑話 - 他們不打擾匹配了斷言*函數的命名規則,它只是從那裏順心。 –

相關問題