rails项目没有使用默认的单元测试包,而是使用了rspec-rails来测试.
按照文档说明首先生成对应的测试文件:
rails generate integration_test xxx invoke rspec create spec/requests/xxx.rb
然后在spec/spec_helper.rb中添加以下一句:
RSpec.configure do |config| . . . config.include Capybara::DSL end
最后使用以下测试命令:
bundle exec rspec spec/requests/static_pages_spec.rb
但是不幸的是,在我的系统中出现了错误:
.rvm/gems/ruby-2.2.5/gems/selenium-webdriver-2.0.0/lib/selenium/webdriver/common/zipper.rb:1:in `require': cannot load such file -- zip/zip (LoadError)
这是因为selenium-webdriver的版本太低导致,在Gemfile中加入一行:
gem 'selenium-webdriver','~>2.35.1'
再次运行测试命令,很不幸还是报错:
.rvm/gems/ruby-2.2.5/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228:in `require': cannot load such file -- test/unit/assertions (LoadError)
这是因为缺少test-unit导致,遂在Gemfile中加入:
gem 'test-unit'
很奇怪,虽然我没有用到test-unit但是还是要加载它!
最后测试一切正常.