Rails DOM 测试项目教程
1. 项目的目录结构及介绍
Rails DOM 测试项目的目录结构如下:
rails-dom-testing/
├── CONTRIBUTING.md
├── Gemfile
├── Gemfile.lock
├── MIT-LICENSE
├── README.md
├── Rakefile
├── rails-dom-testing.gemspec
├── lib/
│ ├── rails-dom-testing.rb
│ ├── rails/
│ │ ├── dom/
│ │ │ ├── testing/
│ │ │ │ ├── assertion_helper.rb
│ │ │ │ ├── assertions.rb
│ │ │ │ ├── node_filter.rb
│ │ │ │ ├── selector_assertions.rb
│ │ │ │ └── version.rb
│ │ │ └── testing.rb
│ │ └── dom.rb
│ └── rails-dom-testing/
│ ├── assertion_helper.rb
│ ├── assertions.rb
│ ├── node_filter.rb
│ ├── selector_assertions.rb
│ └── version.rb
├── test/
│ ├── abstract_unit.rb
│ ├── dom/
│ │ ├── testing/
│ │ │ ├── assertion_helper_test.rb
│ │ │ ├── assertions_test.rb
│ │ │ ├── node_filter_test.rb
│ │ │ ├── selector_assertions_test.rb
│ │ │ └── test_case.rb
│ │ └── testing_test.rb
│ └── test_helper.rb
目录结构介绍
CONTRIBUTING.md
: 贡献指南文件。Gemfile
: 项目依赖的Gemfile。Gemfile.lock
: Gemfile的锁定文件。MIT-LICENSE
: 项目许可证文件。README.md
: 项目说明文件。Rakefile
: Rake任务文件。rails-dom-testing.gemspec
: 项目gemspec文件。lib/
: 项目的主要代码目录。rails-dom-testing.rb
: 主入口文件。rails/dom/testing/
: 包含DOM测试相关的文件。
test/
: 测试文件目录。
2. 项目的启动文件介绍
项目的启动文件是 lib/rails-dom-testing.rb
,它负责加载项目所需的所有文件和模块。
# lib/rails-dom-testing.rb
require 'active_support'
require 'nokogiri'
module Rails
module Dom
module Testing
extend ActiveSupport::Autoload
autoload :AssertionHelper
autoload :Assertions
autoload :NodeFilter
autoload :SelectorAssertions
end
end
end
3. 项目的配置文件介绍
项目的配置文件主要是 rails-dom-testing.gemspec
,它定义了项目的依赖、作者、版本等信息。
# rails-dom-testing.gemspec
Gem::Specification.new do |s|
s.name = 'rails-dom-testing'
s.version = '2.0.3'
s.authors = ['Rafael Mendonça França', 'Kasper Timm Hansen']
s.email = ['rafaelmfranca@gmail.com', 'kaspth@gmail.com']
s.homepage = 'https://github.com/rails/rails-dom-testing'
s.summary = 'Dom and Selector assertions for Rails applications'
s.description = 'This gem can compare doms and assert certain elements exists in doms using Nokogiri.'
s.license = 'MIT'
s.required_ruby_version = '>= 2.5.0'
s.files = Dir['lib/**/*', 'MIT-LICENSE', 'Rakefile', 'README.md']
s.add_dependency 'activesupport', '>= 4.2.0'
s.add_dependency 'nokogiri', '>= 1.6'
s.add_development_dependency 'bundler', '>= 1.3'
s.add_development_dependency 'minitest', '>=