Agile Web Development With Rails の Chapter 12. Task T: TESTING でまたはまる。
P148 にある test_read_with_hash と test_read_with_fixture_variable が通らない。 @products や @version_control_book とかで fixture の内容が参照できる、って書いてあるんだけど、どうやら @products も @version_control_book も nil のようだ。
なんか見落としているのかなぁ、と思って、Chapter 12 を最初から読み返してみたり、google 先生に尋ねたりしても、よくわからない。
で、test/test_helper.rb を覗いてみると、以下のような記述が。
self.use_instantiated_fixtures = false
これを true にしてやることで、 @products や @version_control_book で fixture の内容が参照できるようになり、無事にテストが通りました。
前エントリの Transactional Fixtures の件といいこの件といい、デフォルトの挙動が本の執筆時点とは変更されているようです。で、調べてみると、1.0RC2 あたりからこのようにデフォルトが変更されている、と Mike Clark's Weblog に書いてありました。