在Ruby中从文件名动态创建自动加载命令
我正在用ruby,rspec,capybara和uninitialized constant ActiveAdminLoginPage
测试一个web应用程序,我遇到了一个uninitialized constant ActiveAdminLoginPage
异常,我不知道该如何解决。
在spec_helper.rb我需要以下内容:
Dir[File.join(Dir.pwd, 'spec/page_objects/**/*.rb')].each { |f| require f }
我有2个班
spec/page_objects/products/active_admin_login_page.rb
module Products
class ActiveAdminLoginPage < ::ActiveAdminLoginPage
...
end
end
继承
spec/page_objects/active_admin_login_page.rb
不幸的是,子类在父类之前加载。
如何从目录中的所有文件名动态创建自动加载命令? 我想替换这个命令:
Dir[File.join(Dir.pwd, 'spec/page_objects/**/*.rb')].each { |f| require f }
用自动加载命令。
你如何使用require
将你的依赖加载到需要它的文件中?
require
加载一次文件,所以你不应该遇到任何副作用。
或者,甚至更好的是,您可以使用auto_load
,它在引擎中使用require
,但它以更智能的方式实现
autoload :ActiveAdminLoginPage, 'active_admin_login_page'
链接地址: http://www.djcxy.com/p/97085.html
上一篇: Dynamically create autoload command from filenames in Ruby