From: Yusuke ENDOH Date: 2008-07-18T22:57:35+09:00 Subject: [ruby-dev:35585] Re: Test::Unit -> miniunit 遠藤です。 miniunit を使ったこともない立場ですが、偉そうにコメントします。 miniunit の導入に反対するなら、miniunit が test/unit 同様に ダメな点より、miniunit が test/unit よりダメな点を説明すべき だと思いました。 2008/07/16 23:10 Kouhei Sutou : > ==== 拡張しづらい 何ができたら「拡張しやすい」でしょうか。 > 例えば、MochaやActiveSupportではTest::Unit::TestCase#runを以 > 下のようにまるごと置き換えています。 ここに拡張性が必要そうなことは同意します。「こう書きたい」という 案とともに、改善を提案したらいいと思いました。 ただ、test/unit でできない以上、miniunit に反対する理由にはなっ てないと思います。 ちなみに、他に拡張性が必要そうな箇所はどんなのがあるでしょうか。 > === miniunitの問題点 > > ↑のTest::Unitの問題点と同じ。miniunitに変えても問題点が改善 > されないどころかもっと悪くなると思ったので反対していました。 「もっと悪くなる」方を説明するといいと思います。 > ==== 拡張しづらい > > メンテナが言うには、Rubyで書かれているんだからminiunitも > test/unitと同じくらい拡張性がある、らしいです。ただ、私は > test/unitは拡張性が低いと思っているので、miniunitにしても嬉 > しくないと思っています。 上記の通り、この主張には説得力を感じません。 > また、miniunitはBDD用の構文もサポートしているのですが、そのた > めのmust_*メソッド(RSpecと違ってshouldではない)は > Module#infect_with_assertionsでassert_*/refute_*から動的に生 > 成しています。ただ、動的といってもrequire 'mini/spec'した時 > 点で生成するので独自assert_*を作った場合は自分でmust_*を定義 > しないといけません。ただ、Module#infect_with_assertionsはそ > んなに使いやすそうではありません。(拡張しづらそう) 正直内容は全然理解できてないのですが、新機能の使いやすさや 拡張性にケチをつけても、使わなければいいだけなので、反対する 理由としては弱いと思います。とんでもなく使いにくいとか、 これを使ったテストコードが氾濫するとやばいとかなら別ですけど。 むしろ、もう一つの反対理由である「機能の豊富さ」という点では、 test/unit より改善してるように感じてしまいました。 > ==== 機能豊富ではない > > miniunitにはモックオブジェクトのサポートが入っていますが、ソー > スコードが小さいだけがウリのようなおもちゃのようなもので、こ > れで便利にテストが書けるとは思えません。 > > 例えば、可変長引数に対応していないので、こういうことができま > せん。 これも内容を理解してないコメントでごめんなさい。確かに新機能で こなれてないかもしれないですが、ないよりマシではないでしょうか。 ひょっとして、「不完全な機能なら存在しない方がマシ」という主張 でしょうか。それなら気持ちはわかります。ruby の多くを否定してる ような気がしないでもないですけど。 > また、miniunitはエラーメッセージがまるで親切ではありません。 > 例えば、このような失敗するテストがあるとします。 これに関しては全面的に同意します。でもこれを直すのってそんなに 難しくなさそうに見えます。 以上を通して、須藤さんがなぜ miniunit に反対しているのか、本当に わかりませんでした。 「機能が変わらないなら、test/unit の方が枯れてていい」とかなら だいぶわかりやすいのですが。 -- Yusuke ENDOH