1

我的测试套件包括guard、rspec、spork 和capybara。我对 TDD 很陌生,但在学习它之前,我会不断地看到由服务器输出中的 rails 生成的数据库查询(使用瘦)。这很有用,因为我可以立即看到何时需要进一步优化查询。

我想知道是否可以使用上述工具的任何 gem 来实现这种行为,或者是否有另一个 gem 可以在我的测试中使用来输出类似的信息。

我在测试套件中使用的主要 gem 如下:

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
4

2 回答 2

3

您可以检查生成的数据库查询的测试日志:

$ tail -f log/test.log

它显示所有已执行的查询 + 一些用于设置测试数据库的插入和回滚语句。

于 2013-10-05T15:35:10.603 回答
0

这是一个常见问题解答;ActiveRecord::Base.logger.level = Logger::DEBUG在您的环境/test.rb 文件中尝试。

接下来,要学习 Rails 和 TDD,不要使用 Capybara。坚持使用 RSpec。我应该说坚持使用正常的测试用例,但是 RSpec 已经占据了这个空间,所以你会发现很多在线支持。

Capybara 用于测试高级和端到端的东西。你只需要TDD,你的数据库包含某某,而你生成的网页包含某某,所以坚持下去。

于 2013-10-05T15:38:58.600 回答