ちょっと調べてみたのですが、説明がよくわからなかったので質問させてください。
ヘルパーのみを追加する Rails エンジンを作成しています。
構造は次のようになります (重要な部分)。
my_engine/
-- app/
-- helpers/
-- my_engine/
-- my_engine_helper.rb
-- spec/
-- dummy/
-- spec_helper.rb
私spec_helper.rb
は次のとおりです。
# Configure Rails Envinronment
ENV['RAILS_ENV'] = 'test'
require File.expand_path('../dummy/config/environment.rb', __FILE__)
require 'rspec/rails'
ENGINE_RAILS_ROOT = File.join(File.dirname(__FILE__), '../')
# Requires supporting ruby files with custom matchers and macros, etc,
# in spec/support/ and its subdirectories.
Dir[File.join(ENGINE_RAILS_ROOT, 'spec/support/**/*.rb')].each { |f| require f }
RSpec.configure do |config|
config.use_transactional_fixtures = true
end
ここまでは順調ですが、ヘルパーをテストする方法がわかりません。最善の方法を知りたい:
- テストファイルを整理する
- ダミーアプリがヘルパーを使用できることをテストします
- ヘルパー自体をテストする
今のところ、仕様を実行すると次のエラーが発生します。
undefined local variable or method `helper' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_1:0x007fcee8b0f4a0>
次のテストで:
require 'spec_helper'
module MyEngine
describe MyEngineHelper do
describe '#something' do
it "does something" do
helper.something.should be_true
end
end
end
end
ありがとうございました !