fixture のインスタンス化ではまる(Rails 勉強中 #2)

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 に書いてありました。