我的测试套件包括防护装置,rspec,spork和水豚。我是TDD的新手,但在学习之前,我会经常看到由服务器输出中的rails生成的数据库查询(使用thin)。这很有用,因为我可以立即看到何时需要进一步优化查询。
我想知道是否可以使用上述工具的任何宝石实现此行为,或者是否有我可以在测试中使用的另一个宝石来输出类似的信息。
我在测试套件中使用的主要宝石如下:
group :development, :test do
gem 'rspec-rails'
gem 'guard-rspec'
gem 'spork-rails'
gem 'guard-spork'
end
group :test do
gem 'capybara'
gem 'selenium-webdriver', "~> 2.35.1"
end
答案 0 :(得分:3)
您可以在测试日志中查看生成的数据库查询:
$ tail -f log/test.log
它显示所有已执行的查询+一些用于设置测试数据库的插入和回滚语句。
答案 1 :(得分:0)
这是一个FAQ;在您的environment / test.rb文件中尝试ActiveRecord::Base.logger.level = Logger::DEBUG
。
接下来,学习Rails& TDD,请勿使用Capybara。坚持RSpec。我应该说要坚持正常的测试用例,但RSpec已经占用了这个空间,所以你会发现很多在线支持。
Capybara用于测试高级&端到端的事情。您只需要TDD,您的数据库包含某某某某,并且您生成的网页包含某某,所以坚持下去。