Sha256: 258305f88ffbe8cd992a5b38a65def89b9e3798fb22a826283f7f281f17735d8
Contents?: true
Size: 1.38 KB
Versions: 4
Compression:
Stored size: 1.38 KB
Contents
ActiveRecord::Base.logger = Logger.new(File.dirname(__FILE__)+'/../debug.log') ActiveRecord::Base.establish_connection :adapter => 'sqlite3', :database => ':memory:' ActiveRecord::Base.connection.class.class_eval do IGNORED_SQL = [/^PRAGMA/, /^SELECT currval/, /^SELECT CAST/, /^SELECT @@IDENTITY/, /^SELECT @@ROWCOUNT/] def execute_with_query_record(sql, name = nil, &block) $queries_executed ||= [] $queries_executed << sql unless IGNORED_SQL.any? { |r| sql =~ r } execute_without_query_record(sql, name, &block) end alias_method_chain :execute, :query_record end module GroupedScope class TestCase < Test::Unit::TestCase def test_truth ; end protected def assert_sql(*patterns_to_match) $queries_executed = [] yield ensure failed_patterns = [] patterns_to_match.each do |pattern| failed_patterns << pattern unless $queries_executed.any?{ |sql| pattern === sql } end assert failed_patterns.empty?, "Query pattern(s) #{failed_patterns.map(&:inspect).join(', ')} not found in:\n#{$queries_executed.inspect}" end def assert_queries(num = 1) $queries_executed = [] yield ensure assert_equal num, $queries_executed.size, "#{$queries_executed.size} instead of #{num} queries were executed." end def assert_no_queries(&block) assert_queries(0, &block) end end end
Version data entries
4 entries across 4 versions & 2 rubygems