ruby、rspec、capybara、seleniumでWebアプリケーションをテストしています。私は解決方法がわからない例外uninitialized constant ActiveAdminLoginPage
に遭遇しました。 spec_helper.rbでRubyのファイル名から動的にautoloadコマンドを作成する
私は次のことを必要としています:
Dir[File.join(Dir.pwd, 'spec/page_objects/**/*.rb')].each { |f| require f }
私は
spec/page_objects/active_admin_login_page.rb
から継承残念ながら、サブクラスが親の前にロードされている2つのクラス
spec/page_objects/products/active_admin_login_page.rb
module Products
class ActiveAdminLoginPage < ::ActiveAdminLoginPage
...
end
end
を持っていますクラス。
ディレクトリ内のすべてのファイル名から動的にオートロードコマンドを作成するにはどうすればよいですか? 私は、このコマンドを交換したいと思います:自動ロードコマンドで
Dir[File.join(Dir.pwd, 'spec/page_objects/**/*.rb')].each { |f| require f }
を。
でそれをしませんか?これは不足定数に基づいてautomaticalyファイルを読み込むだろうか?この機能が組み込まれていないため、おそらくラッパーを作成する必要があります。問題はどのように動作するのだろうかということです。典型的には、各ファイルに対して 'require(_relative)'によってすべての依存関係を読み込みます。自動的に作業を行うには、ロードするファイルを計算するために厳密な命名規則が必要です。 – insider