From: Masatoshi SEKI Date: 2010-01-30T07:20:00+09:00 Subject: [ruby-dev:40249] ERB#src (was Re: Re: [Feature #2366] private constant 咳といいます。 On 2010/01/30, at 4:47, NARUSE, Yui wrote: > > >>> 普通に見えるものは何でも spec にされてしまう例として、以下のような spec >>> があります。(private constant には関係ないですが……) >>> >>> http://github.com/rubyspec/rubyspec/blob/master/library/erb/src_spec.rb >>> >>> つまり、ERB#src の返り値を固定文字列で spec にしているという。1.9 で失敗 >>> してるんですが、どう対処したものでしょう。 >> >> # そのセンスがいいかどうかはおいといて‥ > > センスの問題じゃないんですよ。 > RubySpec の作り手達にって、彼らのユーザは悪名高き Rails なわけで、 > ERB#src だろうがなんだろうが容赦なく使ってきます。 > ですから、公開 API ならばテストするのは当然です。 いや、使ってほしいAPIだしテストしてくださってかまわないのですが、 単純に文字列比較で検査するから問題なんですよね。たぶん。 こういうテストにした方がいいよ、っていうのを教えてあげたら よいのかな。 > >> ERB#srcの結果の文字列に興味がある人にとっては、違うものを返してるの >> だから、仕様変更しやがったんですよね。 > > MatzRuby は仕様変更の場合アプリケーション側に追従を要求する文化ですが、 > 現状互換実装は立場が弱いので。 > >> あるバージョンのERB#srcとまた別のバージョンのERB#srcの挙動は違うので >> あれば、全てのバリエーションについて期待する結果を書かせてあげても >> よいのではないですかねえ。 > > テストを書いて終わりじゃないという事は以上でご理解いただけた事かと思います。 ごめんなさい、よくわかりませんでした。 バージョンごとに挙動に違いある場合に、それぞれのバージョンごとの テストを書くのはダメって意味ですか? それともRubySpecを書いてる人たちともっとわかり合わないとダメって 意味ですか?