我查了一下,但是找不到一個好的解釋,所以這裏是我的問題。用rspec測試rails引擎助手
我正在寫一個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
謝謝!
凡位於相對規範的spec目錄? –
另外,你可以只需要'require'spec_helper'。 –
好吧,我更新了規範。我將spec定位在spec/my_engine/my_engine_helper_spec.rb中,但我不知道它是否正確。 – Happynoff