30

私はどこかで「ミニテスト」が「ルビー1.9.2+の新しいtest::unit」であることを読みました。

しかし、ruby1.9.3にはtest::unitminitestの両方 が含まれているようですが、それは本当ですか?

Railsテストガイドで概説されているように、デフォルトのRailsテストでは、、、のようなものActiveSupport::TestCaseは、またはActionController::TestCaseを使用していますTest::UnitMinitest

レールガイドでは、次のように定義されたテストの例を示しています。

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

--test stringのような名前でメソッドを定義するのとは対照的に、その構文は、またはMinitestのドキュメントには記載されていません。それはどこから来たのですか?Railsはそれを追加していますか、それとも実際にはその一部ですか... lib railsが使用しているテストは何ですか?test_something Test::Unit

PS:「rspecを使うだけ」と言わないでください。私はrspecについて知っています。私は、レールのコンテキストで、stdlibの代替案を探求しようとしています。

4

2 に答える 2

19

MinitestにはTest::Unit「互換性」モジュールが付属しているため、(おそらく)既存のTest::Unitテストをそのまま使用できます。これはおそらくTest::Unitあなたが見ているモジュールです。

レール3.2.3の時点で、ジェネレーターによって作成されたテストには、rails/test_helpが含まれますtest/unit

構文はtest "something" dorails拡張です。で定義さActiveSupport::Testing::Declarativerequire'dによってrails/test_help

于 2012-05-13T18:34:03.490 に答える
5

これはおそらく少し接線方向の応答ですが、rspecコメントに関しては... minitest/spec1.9.xのstdlibでスペックフレーバー構文を提供するものを確認することをお勧めします。

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

于 2012-11-03T17:03:53.760 に答える