3

ちょっと調べてみたのですが、説明がよくわからなかったので質問させてください。

ヘルパーのみを追加する 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

ありがとうございました !

4

2 に答える 2

2

に移動しspec/helpers/my_engine_helper_spec.rbます。メソッドを追加するためのrspec-railsフックがあります。spec/helpershelper

于 2012-10-28T22:29:33.673 に答える
1

activeadminがこれをどのように行うかを確認します

https://github.com/gregbell/active_admin/blob/master/spec/unit/helpers/settings_spec.rb

これは、非常に高品質のテスト スイートを備えた Rails エンジンです (私が貢献しました)。

于 2012-10-29T15:41:17.233 に答える