rails g controller hoge indexとかをすると、controllerとviewのソースなどを自動生成してくれるんですが、rspecのコードも自動生成されます。
自分の場合はmodelやhelperのテストはrspecで書きたいのですが、controllerやviewのテストはSteakで行ないたいなぁと思っているので(要は受け入れテストでいい)、rspecのそれらの要らないコードは自動生成されんでいいのです。その設定はどうするんだろうか?とツイートしたら、config.generatorsで設定するらしいということを聞きました。
まずはダメなパターン。
参考にしたページ: Customizing Generators in Rails 3
config/application.rbで以下のように設定しました。
g.test_frameworkのところで、:views => falseなどにしています。ぐぐったらよく見たのは、こう書けって書いてあったのですが、書いてもダメでした。
config.generators do |g| g.orm :active_record g.test_framework :rspec, :views => false, :controller => false, :fixture => true, :fixture_replacement => :factory_girl g.stylesheets false g.javascripts false end
次に成功したパターン。
参考にしたページ: How can I make sure Rails doesn’t generate spec tests for views and helpers?
g.view_specs falseなどの設定で抑止できました。
config.generators do |g| g.orm :active_record g.view_specs false g.controller_specs false g.test_framework :rspec, :fixture => true, :fixture_replacement => :factory_girl g.stylesheets false g.javascripts false end
rails g controller -hしてみ?って書いてあったから、してみたらそれっぽいパラメータについて書いてありました。なるほどなぁ…。ついでにスタイルシートとJavaScriptも出ないようにしときました。
ただ、これでもまだSteakのコードが自動生成されないので、そこが自動にできたらいいのになぁと思います。方法がわからん!