active_decorator-rspec gem が便利
Active Decorator の decorator 内で、ヘルパーのメソッドを使っていると、テストをうまく書けないという問題があります。
今までは、
active_decorator のdecoratorをrspecでテストする方法 - アジャイルSEを目指すブログ
を参考にさせていただいていたのですが、これだと、ApplicationController に書いた helper_method がテストで使えないようです。
悩んでいたところ、active_decorator-rspec という便利な gem を見つけました。
Gemfile は、こんな感じ。
gem 'active_decorator' group :test do gem 'active_decorator-rspec', require: false gem 'rspec-rails', group: 'development' end
あとは、spec/rails_helper.rb で
require 'active_decorator/rspec'
と読み込んで、
spec/decorators 内のテストで、
describe UserDecorator, '.hoge' do let(:user) { User.new } subject { decorate(user).hoge } end
のように使えます。