unit_record 0.4.1 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +14 -0
- data/LICENSE +20 -0
- data/README.markdown +137 -0
- data/Rakefile +63 -56
- data/lib/active_record/connection_adapters/unit_record_adapter.rb +97 -0
- data/lib/unit_record.rb +8 -1
- data/lib/unit_record/association_stubbing.rb +39 -0
- data/lib/unit_record/column_extension.rb +11 -0
- data/lib/unit_record/disconnected_active_record.rb +10 -32
- data/lib/unit_record/disconnected_test_case.rb +6 -0
- data/test/active_record/connection_adapters/unit_record_adapter_test.rb +103 -0
- data/test/db/schema.rb +9 -0
- data/test/sample_spec.rb +40 -0
- data/test/test_helper.rb +28 -4
- data/test/unit_record/association_stubbing_test.rb +37 -0
- data/test/unit_record/column_cacher_test.rb +26 -0
- data/test/{unit → unit_record}/column_extension_test.rb +1 -1
- data/test/{functional → unit_record}/column_test.rb +1 -1
- data/test/{functional → unit_record}/controller_test.rb +1 -1
- data/test/unit_record/disconnected_active_record_test.rb +52 -0
- data/test/{functional → unit_record}/disconnected_fixtures_test.rb +1 -1
- data/test/unit_record/disconnected_test_case_test.rb +19 -0
- data/vendor/dust-0.1.6/lib/array_extension.rb +5 -0
- data/vendor/dust-0.1.6/lib/definition_error.rb +20 -0
- data/vendor/dust-0.1.6/lib/dust.rb +8 -0
- data/vendor/dust-0.1.6/lib/nil_extension.rb +5 -0
- data/vendor/dust-0.1.6/lib/object_extension.rb +62 -0
- data/vendor/dust-0.1.6/lib/string_extension.rb +5 -0
- data/vendor/dust-0.1.6/lib/symbol_extension.rb +5 -0
- data/vendor/dust-0.1.6/lib/test_case_extension.rb +76 -0
- data/vendor/dust-0.1.6/rakefile.rb +50 -0
- data/vendor/dust-0.1.6/test/all_tests.rb +1 -0
- data/vendor/dust-0.1.6/test/failing_with_helper_unit_test.rb +16 -0
- data/vendor/dust-0.1.6/test/failing_with_setup_unit_test.rb +16 -0
- data/vendor/dust-0.1.6/test/functional_test.rb +12 -0
- data/vendor/dust-0.1.6/test/passing_unit_test.rb +11 -0
- data/vendor/dust-0.1.6/test/passing_with_helper_unit_test.rb +10 -0
- data/vendor/dust-0.1.6/test/passing_with_helpers_unit_test.rb +13 -0
- data/vendor/dust-0.1.6/test/passing_with_setup_unit_test.rb +10 -0
- data/vendor/dust-0.1.6/test/test_helper.rb +1 -0
- metadata +75 -52
- data/README +0 -60
- data/lib/unit_record/column_cacher.rb +0 -45
- data/test/functional/column_cacher_test.rb +0 -19
- data/test/functional/disconnected_active_record_test.rb +0 -33
- data/test/functional/disconnected_test_case_test.rb +0 -7
- data/test/functional/functional_test_helper.rb +0 -4
- data/test/unit/unit_test_helper.rb +0 -5
@@ -0,0 +1,19 @@
|
|
1
|
+
require File.dirname(__FILE__) + "/../test_helper"
|
2
|
+
|
3
|
+
functional_tests do
|
4
|
+
test "use_transactional_fixtures is false" do
|
5
|
+
assert_equal false, Test::Unit::TestCase.use_transactional_fixtures
|
6
|
+
end
|
7
|
+
|
8
|
+
test "trying to use fixtures gives useful message" do
|
9
|
+
exception = nil
|
10
|
+
begin
|
11
|
+
Class.new(Test::Unit::TestCase) do
|
12
|
+
fixtures :users
|
13
|
+
end
|
14
|
+
rescue => exception
|
15
|
+
end
|
16
|
+
assert_not_nil exception
|
17
|
+
assert_equal "Fixtures cannot be used with UnitRecord. ActiveRecord is disconnected; database access is unavailable in unit tests.", exception.message
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Dust #:nodoc:
|
2
|
+
# Dust::DefinitionError is raised when you attempt to define a disallowed method within a test file.
|
3
|
+
#
|
4
|
+
# Test::Unit::TestCase.disallow_setup!
|
5
|
+
#
|
6
|
+
# unit_tests do
|
7
|
+
# def setup
|
8
|
+
# ...
|
9
|
+
# end
|
10
|
+
#
|
11
|
+
# test "name" do
|
12
|
+
# ...
|
13
|
+
# end
|
14
|
+
# end
|
15
|
+
#
|
16
|
+
# The above code will generate the following error
|
17
|
+
# Dust::DefinitionError: setup is not allowed on class Units::[TestClassName]
|
18
|
+
class DefinitionError < StandardError
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,8 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require File.expand_path(File.dirname(__FILE__) + '/object_extension')
|
3
|
+
require File.expand_path(File.dirname(__FILE__) + '/array_extension')
|
4
|
+
require File.expand_path(File.dirname(__FILE__) + '/nil_extension')
|
5
|
+
require File.expand_path(File.dirname(__FILE__) + '/string_extension')
|
6
|
+
require File.expand_path(File.dirname(__FILE__) + '/symbol_extension')
|
7
|
+
require File.expand_path(File.dirname(__FILE__) + '/test_case_extension')
|
8
|
+
require File.expand_path(File.dirname(__FILE__) + '/definition_error')
|
@@ -0,0 +1,62 @@
|
|
1
|
+
class Object
|
2
|
+
# call-seq: unit_tests(options={}, &block)
|
3
|
+
#
|
4
|
+
# Used to define a block of unit tests.
|
5
|
+
#
|
6
|
+
# unit_tests do
|
7
|
+
# test "verify something" do
|
8
|
+
# ...
|
9
|
+
# end
|
10
|
+
# end
|
11
|
+
#
|
12
|
+
# Configuration Options:
|
13
|
+
# * allow - Allows you to specify the methods that are allowed despite being disallowed.
|
14
|
+
# See Test::Unit::TestCase.disallow_helpers! or Test::Unit::TestCase.disallow_setup! for more info
|
15
|
+
def unit_tests(options={}, &block)
|
16
|
+
do_tests("Units", options, &block)
|
17
|
+
end
|
18
|
+
|
19
|
+
# call-seq: functional_tests(options={}, &block)
|
20
|
+
#
|
21
|
+
# Used to define a block of functional tests.
|
22
|
+
#
|
23
|
+
# functional_tests do
|
24
|
+
# test "verify something" do
|
25
|
+
# ...
|
26
|
+
# end
|
27
|
+
# end
|
28
|
+
#
|
29
|
+
# Configuration Options:
|
30
|
+
# * allow - Allows you to specify the methods that are allowed despite being disallowed.
|
31
|
+
# See Test::Unit::TestCase.disallow_helpers! or Test::Unit::TestCase.disallow_setup! for more info
|
32
|
+
def functional_tests(options={}, &block)
|
33
|
+
do_tests("Functionals", options, &block)
|
34
|
+
end
|
35
|
+
|
36
|
+
protected
|
37
|
+
def do_tests(type, options, &block) #:nodoc:
|
38
|
+
options[:allow] = options[:allow].arrayize
|
39
|
+
full_path_file_name = eval "__FILE__", block.binding
|
40
|
+
test_name = File.basename(full_path_file_name, ".rb")
|
41
|
+
test_class = eval "module #{type}; class #{test_name.to_class_name} < Test::Unit::TestCase; self; end; end"
|
42
|
+
test_class.class_eval &block
|
43
|
+
check_for_setup(test_class, options)
|
44
|
+
check_for_helpers(test_class, options)
|
45
|
+
end
|
46
|
+
|
47
|
+
def check_for_setup(test_class, options) #:nodoc:
|
48
|
+
if test_class.instance_methods(false).include?("setup") && Test::Unit::TestCase.disallow_setup? &&
|
49
|
+
!options[:allow].include?(:setup)
|
50
|
+
raise Dust::DefinitionError.new("setup is not allowed on class #{test_class.name}")
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
def check_for_helpers(test_class, options) #:nodoc:
|
55
|
+
test_class.instance_methods(false).each do |method_name|
|
56
|
+
if method_name !~ /^test_/ && Test::Unit::TestCase.disallow_helpers? && !options[:allow].include?(method_name.to_sym)
|
57
|
+
p method_name.to_sym
|
58
|
+
raise Dust::DefinitionError.new("helper methods are not allowed on class #{test_class.name}")
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,76 @@
|
|
1
|
+
module Test #:nodoc:
|
2
|
+
module Unit #:nodoc:
|
3
|
+
class TestCase
|
4
|
+
# call-seq: disallow_setup!
|
5
|
+
#
|
6
|
+
# Used to disallow setup methods in test specifications.
|
7
|
+
#
|
8
|
+
# Test::Unit::TestCase.disallow_setup!
|
9
|
+
#
|
10
|
+
# A test specification can override this behavior by passing :setup in the :allow options.
|
11
|
+
#
|
12
|
+
# unit_tests :allow => :setup do
|
13
|
+
# def setup
|
14
|
+
# ...
|
15
|
+
# end
|
16
|
+
#
|
17
|
+
# test "verify something" do
|
18
|
+
# ...
|
19
|
+
# end
|
20
|
+
# end
|
21
|
+
def self.disallow_setup!
|
22
|
+
@disallow_setup = true
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.disallow_setup? #:nodoc:
|
26
|
+
@disallow_setup
|
27
|
+
end
|
28
|
+
|
29
|
+
# call-seq: disallow_helpers!
|
30
|
+
#
|
31
|
+
# Used to disallow helper methods in test specifications.
|
32
|
+
#
|
33
|
+
# Test::Unit::TestCase.disallow_helper!
|
34
|
+
#
|
35
|
+
# A test specification can override this behavior by passing the helper name (as a symbol) in the :allow options.
|
36
|
+
#
|
37
|
+
# unit_tests :allow => [:create_something, :destroy_something] do
|
38
|
+
# test "verify something" do
|
39
|
+
# ...
|
40
|
+
# end
|
41
|
+
#
|
42
|
+
# def create_something
|
43
|
+
# ...
|
44
|
+
# end
|
45
|
+
#
|
46
|
+
# def destroy_something
|
47
|
+
# ...
|
48
|
+
# end
|
49
|
+
# end
|
50
|
+
def self.disallow_helpers!
|
51
|
+
@disallow_helpers = true
|
52
|
+
end
|
53
|
+
|
54
|
+
def self.disallow_helpers? #:nodoc:
|
55
|
+
@disallow_helpers
|
56
|
+
end
|
57
|
+
|
58
|
+
# call-seq: test(name, &block)
|
59
|
+
#
|
60
|
+
# Used to define a test and assign it a descriptive name.
|
61
|
+
#
|
62
|
+
# unit_tests do
|
63
|
+
# test "verify something" do
|
64
|
+
# ...
|
65
|
+
# end
|
66
|
+
# end
|
67
|
+
def self.test(name, &block)
|
68
|
+
test_name = "test_#{name.gsub(/[\s]/,'_')}".to_sym
|
69
|
+
raise "#{test_name} is already defined in #{self}" if self.instance_methods.include? test_name.to_s
|
70
|
+
define_method test_name do
|
71
|
+
instance_eval &block
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake/gempackagetask'
|
3
|
+
require 'rake/rdoctask'
|
4
|
+
require 'rake/contrib/sshpublisher'
|
5
|
+
|
6
|
+
task :default => :test
|
7
|
+
|
8
|
+
task :test do
|
9
|
+
require File.dirname(__FILE__) + '/test/all_tests.rb'
|
10
|
+
end
|
11
|
+
|
12
|
+
desc 'Generate RDoc'
|
13
|
+
Rake::RDocTask.new do |task|
|
14
|
+
task.main = 'README'
|
15
|
+
task.title = 'Dust'
|
16
|
+
task.rdoc_dir = 'doc'
|
17
|
+
task.options << "--line-numbers" << "--inline-source"
|
18
|
+
task.rdoc_files.include('README', 'lib/**/*.rb')
|
19
|
+
end
|
20
|
+
|
21
|
+
desc "Upload RDoc to RubyForge"
|
22
|
+
task :publish_rdoc => [:rdoc] do
|
23
|
+
Rake::SshDirPublisher.new("jaycfields@rubyforge.org", "/var/www/gforge-projects/dust", "doc").upload
|
24
|
+
end
|
25
|
+
|
26
|
+
Gem::manage_gems
|
27
|
+
|
28
|
+
specification = Gem::Specification.new do |s|
|
29
|
+
s.name = "dust"
|
30
|
+
s.summary = "Dust is an add on for Test::Unit that allows an alternative test definintion syntax."
|
31
|
+
s.version = "0.1.6"
|
32
|
+
s.author = 'Jay Fields'
|
33
|
+
s.description = "Dust is an add on for Test::Unit that allows an alternative test definintion syntax."
|
34
|
+
s.email = 'dust-developer@rubyforge.org'
|
35
|
+
s.homepage = 'http://dust.rubyforge.org'
|
36
|
+
s.rubyforge_project = 'dust'
|
37
|
+
|
38
|
+
s.has_rdoc = true
|
39
|
+
s.extra_rdoc_files = ['README']
|
40
|
+
s.rdoc_options << '--title' << 'Dust' << '--main' << 'README' << '--line-numbers'
|
41
|
+
|
42
|
+
s.autorequire = 'dust'
|
43
|
+
s.files = FileList['{lib,test}/**/*.rb', '[A-Z]*$', 'rakefile.rb'].to_a
|
44
|
+
s.test_file = "test/all_tests.rb"
|
45
|
+
end
|
46
|
+
|
47
|
+
Rake::GemPackageTask.new(specification) do |package|
|
48
|
+
package.need_zip = false
|
49
|
+
package.need_tar = false
|
50
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
Dir['**/*_test.rb'].each { |test_case| require test_case }
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + "/test_helper")
|
2
|
+
|
3
|
+
begin
|
4
|
+
unit_tests do
|
5
|
+
Test::Unit::TestCase.disallow_helpers!
|
6
|
+
def helper_method
|
7
|
+
end
|
8
|
+
|
9
|
+
test("true"){}
|
10
|
+
end
|
11
|
+
raise "shouldn't be here"
|
12
|
+
rescue Dust::DefinitionError => ex
|
13
|
+
raise unless ex.message == "helper methods are not allowed on class Units::FailingWithHelperUnitTest"
|
14
|
+
ensure
|
15
|
+
Test::Unit::TestCase.class_eval { @disallow_helpers = nil }
|
16
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + "/test_helper")
|
2
|
+
|
3
|
+
begin
|
4
|
+
unit_tests do
|
5
|
+
Test::Unit::TestCase.disallow_setup!
|
6
|
+
def setup
|
7
|
+
end
|
8
|
+
|
9
|
+
test("true"){}
|
10
|
+
end
|
11
|
+
raise "shouldn't be here"
|
12
|
+
rescue Dust::DefinitionError => ex
|
13
|
+
raise unless ex.message == "setup is not allowed on class Units::FailingWithSetupUnitTest"
|
14
|
+
ensure
|
15
|
+
Test::Unit::TestCase.class_eval { @disallow_setup = nil }
|
16
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + "/test_helper")
|
2
|
+
|
3
|
+
functional_tests do
|
4
|
+
test "assert true" do
|
5
|
+
assert_equal true, true
|
6
|
+
end
|
7
|
+
|
8
|
+
test "class name is Functionals::FunctionalTest" do
|
9
|
+
assert_equal "Functionals::FunctionalTest", self.class.name
|
10
|
+
end
|
11
|
+
|
12
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + "/test_helper")
|
2
|
+
|
3
|
+
unit_tests do
|
4
|
+
test "assert true" do
|
5
|
+
assert_equal true, true
|
6
|
+
end
|
7
|
+
|
8
|
+
test "class name is Units::PassingUnitTest" do
|
9
|
+
assert_equal "Units::PassingUnitTest", self.class.name
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + "/test_helper")
|
2
|
+
|
3
|
+
Test::Unit::TestCase.disallow_helpers!
|
4
|
+
unit_tests :allow => [:helper, :helper2] do
|
5
|
+
def helper
|
6
|
+
end
|
7
|
+
|
8
|
+
def helper2
|
9
|
+
end
|
10
|
+
|
11
|
+
test("true"){}
|
12
|
+
end
|
13
|
+
Test::Unit::TestCase.class_eval { @disallow_helpers = nil }
|
@@ -0,0 +1 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../lib/dust'
|
metadata
CHANGED
@@ -1,70 +1,93 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
|
-
rubygems_version: 0.9.4
|
3
|
-
specification_version: 1
|
4
2
|
name: unit_record
|
5
3
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.
|
7
|
-
date: 2007-12-10 00:00:00 -05:00
|
8
|
-
summary: UnitRecord enables unit testing without hitting the database.
|
9
|
-
require_paths:
|
10
|
-
- lib
|
11
|
-
email: daniel.manges@gmail.com
|
12
|
-
homepage: http://unit-test-ar.rubyforge.org
|
13
|
-
rubyforge_project: unit-test-ar
|
14
|
-
description: UnitRecord enables unit testing without hitting the database.
|
15
|
-
autorequire: unit_record
|
16
|
-
default_executable:
|
17
|
-
bindir: bin
|
18
|
-
has_rdoc: true
|
19
|
-
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
20
|
-
requirements:
|
21
|
-
- - ">"
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version: 0.0.0
|
24
|
-
version:
|
4
|
+
version: 0.9.0
|
25
5
|
platform: ruby
|
26
|
-
signing_key:
|
27
|
-
cert_chain:
|
28
|
-
post_install_message:
|
29
6
|
authors:
|
30
7
|
- Dan Manges
|
8
|
+
autorequire: unit_record
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2008-12-15 00:00:00 -06:00
|
13
|
+
default_executable:
|
14
|
+
dependencies: []
|
15
|
+
|
16
|
+
description: UnitRecord enables unit testing without hitting the database.
|
17
|
+
email: daniel.manges@gmail.com
|
18
|
+
executables: []
|
19
|
+
|
20
|
+
extensions: []
|
21
|
+
|
22
|
+
extra_rdoc_files: []
|
23
|
+
|
31
24
|
files:
|
32
|
-
- lib/
|
33
|
-
- lib/unit_record/
|
25
|
+
- lib/active_record/connection_adapters/unit_record_adapter.rb
|
26
|
+
- lib/unit_record/association_stubbing.rb
|
34
27
|
- lib/unit_record/column_extension.rb
|
35
28
|
- lib/unit_record/disconnected_active_record.rb
|
36
29
|
- lib/unit_record/disconnected_fixtures.rb
|
37
30
|
- lib/unit_record/disconnected_test_case.rb
|
38
|
-
-
|
31
|
+
- lib/unit_record.rb
|
32
|
+
- test/active_record/connection_adapters/unit_record_adapter_test.rb
|
39
33
|
- test/db/schema.rb
|
40
|
-
- test/
|
41
|
-
- test/
|
42
|
-
- test/
|
43
|
-
- test/
|
44
|
-
- test/
|
45
|
-
- test/
|
46
|
-
- test/
|
47
|
-
- test/
|
48
|
-
- test/
|
34
|
+
- test/sample_spec.rb
|
35
|
+
- test/test_helper.rb
|
36
|
+
- test/unit_record/association_stubbing_test.rb
|
37
|
+
- test/unit_record/column_cacher_test.rb
|
38
|
+
- test/unit_record/column_extension_test.rb
|
39
|
+
- test/unit_record/column_test.rb
|
40
|
+
- test/unit_record/controller_test.rb
|
41
|
+
- test/unit_record/disconnected_active_record_test.rb
|
42
|
+
- test/unit_record/disconnected_fixtures_test.rb
|
43
|
+
- test/unit_record/disconnected_test_case_test.rb
|
44
|
+
- vendor/dust-0.1.6/lib/array_extension.rb
|
45
|
+
- vendor/dust-0.1.6/lib/definition_error.rb
|
46
|
+
- vendor/dust-0.1.6/lib/dust.rb
|
47
|
+
- vendor/dust-0.1.6/lib/nil_extension.rb
|
48
|
+
- vendor/dust-0.1.6/lib/object_extension.rb
|
49
|
+
- vendor/dust-0.1.6/lib/string_extension.rb
|
50
|
+
- vendor/dust-0.1.6/lib/symbol_extension.rb
|
51
|
+
- vendor/dust-0.1.6/lib/test_case_extension.rb
|
52
|
+
- vendor/dust-0.1.6/rakefile.rb
|
53
|
+
- vendor/dust-0.1.6/test/all_tests.rb
|
54
|
+
- vendor/dust-0.1.6/test/failing_with_helper_unit_test.rb
|
55
|
+
- vendor/dust-0.1.6/test/failing_with_setup_unit_test.rb
|
56
|
+
- vendor/dust-0.1.6/test/functional_test.rb
|
57
|
+
- vendor/dust-0.1.6/test/passing_unit_test.rb
|
58
|
+
- vendor/dust-0.1.6/test/passing_with_helper_unit_test.rb
|
59
|
+
- vendor/dust-0.1.6/test/passing_with_helpers_unit_test.rb
|
60
|
+
- vendor/dust-0.1.6/test/passing_with_setup_unit_test.rb
|
61
|
+
- vendor/dust-0.1.6/test/test_helper.rb
|
49
62
|
- CHANGELOG
|
50
|
-
-
|
63
|
+
- LICENSE
|
64
|
+
- README.markdown
|
51
65
|
- Rakefile
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
- UnitRecord
|
57
|
-
- --main
|
58
|
-
- README
|
59
|
-
- --line-numbers
|
60
|
-
extra_rdoc_files:
|
61
|
-
- README
|
62
|
-
- CHANGELOG
|
63
|
-
executables: []
|
64
|
-
|
65
|
-
extensions: []
|
66
|
+
has_rdoc: false
|
67
|
+
homepage: http://unit-test-ar.rubyforge.org
|
68
|
+
post_install_message:
|
69
|
+
rdoc_options: []
|
66
70
|
|
71
|
+
require_paths:
|
72
|
+
- lib
|
73
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
74
|
+
requirements:
|
75
|
+
- - ">="
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: "0"
|
78
|
+
version:
|
79
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: "0"
|
84
|
+
version:
|
67
85
|
requirements: []
|
68
86
|
|
69
|
-
|
87
|
+
rubyforge_project: unit-test-ar
|
88
|
+
rubygems_version: 1.3.1
|
89
|
+
signing_key:
|
90
|
+
specification_version: 2
|
91
|
+
summary: UnitRecord enables unit testing without hitting the database.
|
92
|
+
test_files: []
|
70
93
|
|