ネームスペース付きのモデルをfixutureで読み込ませる

Rails4.1.4
FactoryGirlはテストデータを作成するコストは低いけど実行時が超遅い。
なので最近は、読み込みだけのテストならfixtureを使う派になってきていまぁす。

本題。
特定のタグが付いているレコードを返すモデルのテストを書いてて、
その特定のタグもfixtureを書いていたんだけど、tagsテーブルにレコードがインサートされていないということが起こった。
ActsAsTaggableOn::Tag(gging)モデルのマッピング先テーブルを変更しているのが、トリガーになって起こったっぽい。
(マッピング先テーブルを変更している)ネームスペース付きのモデルをfixutureで読み込ませたい!

# この時こう書いてた。
describe PresenterForm
  fixtures :tag, :tagging, :presenter, :stap
  ...
end

調べてみると、fixturesメソッドは正常に動いて、tagsテーブルとtaggingsテーブルにインサートされてた。
今回はタグモデルのマッピング先テーブルを変更しているので、hoge_tagsとhoge_taggingsにインサート欲しい。
(作っているアプリの要件のせいで、tagsとhoge_tags、taggingsとhoge_tagginsというテーブルが存在してる。)

結論から書くと、
1) fixtureファイルはネームスペースに従った場所におく。

spec/fixtures/acts_as_taggable_on/tags.yml
spec/fixtures/acts_as_taggable_on/taggings.yml

2) fixturesメソッドの引数もネームスペースに従って書く。

describe PresenterForm
  fixtures 'acts_as_taggable_on/tags', 'acts_as_taggable_on/taggings', :presenters, :stap
  ....
end

そうすることでActsAsTaggableOn:(Tag|Tagging)クラスを読み込んでくれてtable_nameを参照してくれるので掲題のことができるようになる。

ちなみに、fixturesメソッドは、「fixuturesの引数」と「ActiveRecord::Baseを継承したclass」が命名規則で一致しない場合は、
引数通りのテーブル名でinsertしていくので、冒頭のようにfixtures :tagsと書いた場合にtagsテーブルにインサートされたのでした。

テーブル名を変更しなかったら遭遇しなかった事案。