minitest-rails 0.3 → 0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. data/.travis.yml +4 -2
  2. data/LICENSE +1 -1
  3. data/Manifest.txt +5 -8
  4. data/README.rdoc +11 -29
  5. data/Rakefile +3 -3
  6. data/gemfiles/3.0.gemfile +1 -1
  7. data/gemfiles/3.0.gemfile.lock +35 -35
  8. data/gemfiles/3.1.gemfile +1 -1
  9. data/gemfiles/3.1.gemfile.lock +35 -35
  10. data/gemfiles/3.2.gemfile +1 -1
  11. data/gemfiles/3.2.gemfile.lock +39 -38
  12. data/gemfiles/4.0.gemfile +8 -0
  13. data/gemfiles/4.0.gemfile.lock +104 -0
  14. data/lib/generators/mini_test.rb +25 -12
  15. data/lib/generators/mini_test/controller/templates/controller_test.rb +1 -1
  16. data/lib/generators/mini_test/helper/templates/helper_test.rb +2 -2
  17. data/lib/generators/mini_test/install/install_generator.rb +1 -1
  18. data/lib/generators/mini_test/install/templates/test/minitest_helper.rb +3 -9
  19. data/lib/generators/mini_test/integration/integration_generator.rb +2 -2
  20. data/lib/generators/mini_test/integration/templates/integration_spec.rb +2 -2
  21. data/lib/generators/mini_test/integration/templates/integration_test.rb +1 -1
  22. data/lib/generators/mini_test/mailer/templates/mailer_test.rb +1 -1
  23. data/lib/generators/mini_test/model/templates/model_test.rb +1 -1
  24. data/lib/generators/mini_test/scaffold/templates/controller_test.rb +1 -1
  25. data/lib/minitest/rails.rb +109 -20
  26. data/lib/minitest/rails/constant_lookup.rb +41 -44
  27. data/lib/minitest/rails/tasks/minitest.rake +22 -51
  28. data/lib/minitest/rails/test_case.rb +93 -0
  29. data/lib/minitest/rails/testing.rb +39 -0
  30. data/lib/minitest/rails/version.rb +1 -1
  31. data/minitest-rails.gemspec +11 -11
  32. data/tasks/gemfiles.rake +2 -1
  33. data/tasks/test.rake +6 -0
  34. data/test/generators/test_controller_generator.rb +10 -39
  35. data/test/generators/test_helper_generator.rb +8 -35
  36. data/test/generators/test_install_generator.rb +4 -27
  37. data/test/generators/test_mailer_generator.rb +5 -29
  38. data/test/generators/test_model_generator.rb +7 -32
  39. data/test/generators/test_scaffold_generator.rb +5 -29
  40. data/test/helper.rb +35 -0
  41. data/test/rails/action_controller/test_controllers.rb +4 -14
  42. data/test/rails/action_controller/test_spec_type.rb +3 -7
  43. data/test/rails/action_dispatch/test_spec_type.rb +16 -11
  44. data/test/rails/action_mailer/test_mailers.rb +4 -8
  45. data/test/rails/action_mailer/test_spec_type.rb +3 -8
  46. data/test/rails/action_view/test_helpers.rb +4 -7
  47. data/test/rails/action_view/test_spec_type.rb +3 -10
  48. data/test/rails/active_support/test_spec_type.rb +2 -7
  49. data/test/rails/test_constant_lookup.rb +2 -5
  50. data/test/test_sanity.rb +1 -2
  51. metadata +33 -36
  52. data/gemfiles/minitest_tu_shim.rb +0 -4
  53. data/lib/minitest/rails/action_controller.rb +0 -28
  54. data/lib/minitest/rails/action_dispatch.rb +0 -41
  55. data/lib/minitest/rails/action_mailer.rb +0 -26
  56. data/lib/minitest/rails/action_view.rb +0 -23
  57. data/lib/minitest/rails/active_support.rb +0 -70
  58. data/lib/minitest/rails/declarative.rb +0 -27
  59. data/lib/minitest/rails/mochaing.rb +0 -11
@@ -1,56 +1,53 @@
1
1
  require "active_support/concern"
2
+ require "active_support/inflector"
2
3
 
3
4
  module MiniTest
4
5
  module Rails
5
- module ActiveSupport
6
- module Testing
7
- # Resolves a constant from a minitest spec name.
8
- #
9
- # Given the following spec-style test:
10
- #
11
- # describe WidgetsController, :index do
12
- # describe "authenticated user" do
13
- # describe "returns widgets" do
14
- # it "has a controller that exists" do
15
- # assert_kind_of WidgetsController, @controller
16
- # end
17
- # end
18
- # end
19
- # end
20
- #
21
- # The test will have the following name:
22
- #
23
- # "WidgetsController::index::authenticated user::returns widgets"
24
- #
25
- # The constant WidgetsController can be resolved from the name.
26
- # The following code will resolve the constant:
27
- #
28
- # controller = determine_constant_from_test_name(name) do |constant|
29
- # Class === constant && constant < ::ActionController::Metal
30
- # end
31
- module ConstantLookup
32
- extend ::ActiveSupport::Concern
6
+ module Testing
7
+ # Resolves a constant from a minitest spec name.
8
+ #
9
+ # Given the following spec-style test:
10
+ #
11
+ # describe WidgetsController, :index do
12
+ # describe "authenticated user" do
13
+ # describe "returns widgets" do
14
+ # it "has a controller that exists" do
15
+ # assert_kind_of WidgetsController, @controller
16
+ # end
17
+ # end
18
+ # end
19
+ # end
20
+ #
21
+ # The test will have the following name:
22
+ #
23
+ # "WidgetsController::index::authenticated user::returns widgets"
24
+ #
25
+ # The constant WidgetsController can be resolved from the name.
26
+ # The following code will resolve the constant:
27
+ #
28
+ # controller = determine_constant_from_test_name(name) do |constant|
29
+ # Class === constant && constant < ::ActionController::Metal
30
+ # end
31
+ module ConstantLookup
32
+ extend ::ActiveSupport::Concern
33
33
 
34
- module ClassMethods
35
- def determine_constant_from_test_name(test_name)
36
- names = test_name.split "::"
37
- while names.size > 0 do
38
- names.last.sub! /Test$/, ""
39
- # Rails 3.0 doesn't have safe_constantize,
40
- # so we'll do it the hard way.
41
- begin
42
- constant = names.join("::").constantize
43
- break(constant) if yield(constant)
44
- rescue NameError
45
- # Constant wasn't found, move on
46
- ensure
47
- names.pop
48
- end
34
+ module ClassMethods # :nodoc:
35
+ def determine_constant_from_test_name(test_name)
36
+ names = test_name.split "::"
37
+ while names.size > 0 do
38
+ names.last.sub!(/Test$/, "")
39
+ begin
40
+ constant = names.join("::").constantize
41
+ break(constant) if yield(constant)
42
+ rescue NameError
43
+ # Constant wasn't found, move on
44
+ ensure
45
+ names.pop
49
46
  end
50
47
  end
51
48
  end
52
-
53
49
  end
50
+
54
51
  end
55
52
  end
56
53
  end
@@ -1,81 +1,52 @@
1
- require 'rake/testtask'
2
- require 'minitest/rails/tasks/sub_test_task'
3
-
4
- # The default tests to run, update this list to change behavior
5
- MINITEST_TASKS = %w(models helpers controllers mailers acceptance) #views
6
-
7
- def all_directories_under_test
8
- Dir['test/*/'].map {|dir| /test\/(.+?)\//.match(dir)[1] }
9
- end
10
-
11
- def all_minitest_directories
12
- (MINITEST_TASKS + all_directories_under_test).uniq
13
- end
1
+ require "rake/testtask"
2
+ require "minitest/rails/testing"
3
+ require "minitest/rails/tasks/sub_test_task"
14
4
 
15
5
  desc "Runs minitest"
16
6
  task :test do
17
7
  # Add to existing task if exists, or create new task otherwise
18
- Rake::Task['minitest'].invoke
8
+ Rake::Task["minitest"].invoke
19
9
  end
20
10
 
21
- namespace 'test' do
11
+ namespace "test" do
22
12
  task :prepare do
23
13
  # Define here in case test_unit isn't loaded
24
14
  end
25
15
  end
26
16
 
27
- desc "Runs #{MINITEST_TASKS.join(", ")} together"
17
+ # desc "Runs default tests (#{MiniTest::Rails::Testing.default_tasks.join(', ')})"
28
18
  task :minitest do
29
- Rake::Task['minitest:default'].invoke
19
+ Rake::Task["minitest:default"].invoke
30
20
  end
31
21
 
32
- namespace 'minitest' do
22
+ namespace "minitest" do
33
23
 
34
- # Only run the default tasks defined in MINITEST_TASKS
24
+ # Only run the default tasks defined in MiniTest::Rails::Testing.default_tasks
35
25
  task :default do
36
- errors = MINITEST_TASKS.collect do |task|
37
- begin
38
- Rake::Task["minitest:#{task}"].invoke
39
- nil
40
- rescue => e
41
- { :task => "minitest:#{task}", :exception => e }
42
- end
43
- end.compact
44
-
45
- if errors.any?
46
- puts errors.map { |e| "Errors running #{e[:task]}! #{e[:exception].inspect}" }.join("\n")
47
- abort
48
- end
26
+ MiniTest::Rails::Testing.run_tests MiniTest::Rails::Testing.default_tasks
49
27
  end
50
28
 
51
29
  # Run all tests in all the test directories
30
+ # desc "Runs all tests"
52
31
  task :all do
53
- errors = all_minitest_directories.collect do |task|
54
- begin
55
- Rake::Task["minitest:#{task}"].invoke
56
- nil
57
- rescue => e
58
- { :task => "minitest:#{task}", :exception => e }
59
- end
60
- end.compact
61
-
62
- if errors.any?
63
- puts errors.map { |e| "Errors running #{e[:task]}! #{e[:exception].inspect}" }.join("\n")
64
- abort
65
- end
32
+ MiniTest::Rails::Testing.run_tests MiniTest::Rails::Testing.all_tasks
66
33
  end
67
34
 
68
- all_minitest_directories.each do |task|
69
- MiniTest::Rails::Tasks::SubTestTask.new(task => 'test:prepare') do |t|
70
- t.libs.push 'test'
71
- t.pattern = "test/#{task}/**/*_test.rb"
35
+ MiniTest::Rails::Testing.all_tasks.each do |task_dir|
36
+ unless Rake::Task.task_defined? "minitest:#{task_dir}"
37
+ # desc "Runs tests under test/#{task_dir}"
38
+ MiniTest::Rails::Tasks::SubTestTask.new(task_dir => "test:prepare") do |t|
39
+ t.libs.push "test"
40
+ t.pattern = "test/#{task_dir}/**/*_test.rb"
41
+ t.options = MiniTest::Rails::Testing.task_opts[task_dir] if MiniTest::Rails::Testing.task_opts[task_dir]
42
+ end
72
43
  end
73
44
  end
74
45
 
75
46
  end
76
47
 
77
48
  # Override the default task
78
- task :default => [] # Just in case it hasn't already been set
49
+ task :default => [] # Just in case it hasn"t already been set
79
50
  Rake::Task[:default].clear
80
- desc "Runs minitest"
51
+ desc "Runs default tests"
81
52
  task :default => "minitest"
@@ -0,0 +1,93 @@
1
+ gem "minitest" # make sure we get the gem, not stdlib
2
+ require "minitest/spec"
3
+
4
+ # I hate this! Be sure you have installed minitest_tu_shim
5
+ require "test/unit" if RUBY_VERSION < "1.9"
6
+
7
+ begin
8
+ require "active_support/testing/tagged_logging"
9
+ rescue LoadError; end
10
+ require "active_support/testing/setup_and_teardown"
11
+ require "active_support/testing/assertions"
12
+ require "active_support/testing/deprecation"
13
+ require "active_support/testing/pending"
14
+ require "active_support/testing/isolation"
15
+ require "active_support/core_ext/kernel/reporting"
16
+
17
+ begin
18
+ require 'active_support/testing/constant_lookup'
19
+ rescue LoadError; end
20
+ require "minitest/rails/constant_lookup"
21
+
22
+ begin
23
+ silence_warnings { require "mocha/setup" }
24
+ rescue LoadError
25
+ end
26
+
27
+ module MiniTest
28
+ module Rails
29
+ class TestCase < MiniTest::Spec
30
+
31
+ # This is deprecated in minitest, but I don't want to change the Rails calls to it.
32
+ # Keep it here for now, until a better way presents itself...
33
+ def assert_block msg = nil
34
+ msg = message(msg) { "Expected block to return true value" }
35
+ assert yield, msg
36
+ end
37
+
38
+ # For backward compatibility with Test::Unit
39
+ def build_message(message, template = nil, *args)
40
+ template = template.gsub('<?>', '<%s>')
41
+ message || sprintf(template, *args)
42
+ end
43
+
44
+ Assertion = MiniTest::Assertion
45
+ alias_method :method_name, :name if method_defined? :name
46
+ alias_method :method_name, :__name__ if method_defined? :__name__
47
+
48
+ $tags = {}
49
+ def self.for_tag(tag)
50
+ yield if $tags[tag]
51
+ end
52
+
53
+ include ::ActiveSupport::Testing::TaggedLogging if defined? ActiveSupport::Testing::TaggedLogging
54
+ include ::ActiveSupport::Testing::SetupAndTeardown
55
+ include ::ActiveSupport::Testing::Assertions
56
+ include ::ActiveSupport::Testing::Deprecation
57
+ include ::ActiveSupport::Testing::Pending
58
+
59
+ # Alias `it` instead of extending ActiveSupport::Testing::Declarative
60
+ class << self
61
+ alias :test :it
62
+ end
63
+
64
+ # Resolve constants from the test name when using the spec DSL
65
+ include Testing::ConstantLookup
66
+
67
+ # test/unit backwards compatibility methods
68
+ alias :assert_raise :assert_raises
69
+ alias :assert_not_empty :refute_empty
70
+ alias :assert_not_equal :refute_equal
71
+ alias :assert_not_in_delta :refute_in_delta
72
+ alias :assert_not_in_epsilon :refute_in_epsilon
73
+ alias :assert_not_includes :refute_includes
74
+ alias :assert_not_instance_of :refute_instance_of
75
+ alias :assert_not_kind_of :refute_kind_of
76
+ alias :assert_no_match :refute_match
77
+ alias :assert_not_nil :refute_nil
78
+ alias :assert_not_operator :refute_operator
79
+ alias :assert_not_predicate :refute_predicate
80
+ alias :assert_not_respond_to :refute_respond_to
81
+ alias :assert_not_same :refute_same
82
+
83
+ # Fails if the block raises an exception.
84
+ #
85
+ # assert_nothing_raised do
86
+ # ...
87
+ # end
88
+ def assert_nothing_raised(*args)
89
+ yield
90
+ end
91
+ end
92
+ end
93
+ end
@@ -0,0 +1,39 @@
1
+ require "rake/testtask"
2
+
3
+ module MiniTest
4
+ module Rails
5
+ module Testing
6
+ mattr_accessor :default_tasks
7
+ mattr_accessor :task_opts
8
+
9
+ self.default_tasks = %w(models helpers controllers mailers integration)
10
+ self.task_opts = { "performance" => "-- --benchmark" }
11
+
12
+ def self.all_tasks
13
+ Dir["test/*/"].map {|dir| /test\/(.+?)\//.match(dir)[1] }.select do |dir|
14
+ !Dir.glob("test/#{dir}/**/*_test.rb").empty?
15
+ end
16
+ end
17
+
18
+ def self.run_tests directories
19
+ errors = directories.collect do |dir|
20
+ task = "minitest:#{dir}"
21
+ begin
22
+ if Rake::Task.task_defined? task
23
+ Rake::Task[task].invoke
24
+ end
25
+ nil
26
+ rescue => e
27
+ { :task => task, :exception => e }
28
+ end
29
+ end.compact
30
+
31
+ if errors.any?
32
+ puts errors.map { |e| "Errors running #{e[:task]}! #{e[:exception].inspect}" }.join("\n")
33
+ abort
34
+ end
35
+ end
36
+
37
+ end
38
+ end
39
+ end
@@ -1,5 +1,5 @@
1
1
  module MiniTest
2
2
  module Rails
3
- VERSION = "0.3"
3
+ VERSION = "0.5"
4
4
  end
5
5
  end
@@ -2,21 +2,21 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "minitest-rails"
5
- s.version = "0.3.20121102170159"
5
+ s.version = "0.5.20130110235401"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Mike Moore"]
9
- s.date = "2012-11-02"
10
- s.description = "Adds MiniTest as the default testing library in Rails 3.x"
9
+ s.date = "2013-01-11"
10
+ s.description = "Adds MiniTest as the default testing library in Rails 3 and 4"
11
11
  s.email = ["mike@blowmage.com"]
12
12
  s.extra_rdoc_files = ["CHANGELOG.rdoc", "Manifest.txt", "README.rdoc"]
13
- s.files = [".autotest", ".gemtest", ".travis.yml", "CHANGELOG.rdoc", "LICENSE", "Manifest.txt", "README.rdoc", "Rakefile", "gemfiles/3.0.gemfile", "gemfiles/3.0.gemfile.lock", "gemfiles/3.1.gemfile", "gemfiles/3.1.gemfile.lock", "gemfiles/3.2.gemfile", "gemfiles/3.2.gemfile.lock", "gemfiles/minitest_tu_shim.rb", "lib/autotest/discover.rb", "lib/autotest/fixtures.rb", "lib/autotest/migrate.rb", "lib/autotest/minitest_rails.rb", "lib/generators/mini_test.rb", "lib/generators/mini_test/controller/controller_generator.rb", "lib/generators/mini_test/controller/templates/controller_spec.rb", "lib/generators/mini_test/controller/templates/controller_test.rb", "lib/generators/mini_test/helper/helper_generator.rb", "lib/generators/mini_test/helper/templates/helper_spec.rb", "lib/generators/mini_test/helper/templates/helper_test.rb", "lib/generators/mini_test/install/install_generator.rb", "lib/generators/mini_test/install/templates/test/minitest_helper.rb", "lib/generators/mini_test/integration/integration_generator.rb", "lib/generators/mini_test/integration/templates/integration_spec.rb", "lib/generators/mini_test/integration/templates/integration_test.rb", "lib/generators/mini_test/mailer/mailer_generator.rb", "lib/generators/mini_test/mailer/templates/mailer_spec.rb", "lib/generators/mini_test/mailer/templates/mailer_test.rb", "lib/generators/mini_test/model/model_generator.rb", "lib/generators/mini_test/model/templates/fixtures.yml", "lib/generators/mini_test/model/templates/model_spec.rb", "lib/generators/mini_test/model/templates/model_test.rb", "lib/generators/mini_test/scaffold/scaffold_generator.rb", "lib/generators/mini_test/scaffold/templates/controller_spec.rb", "lib/generators/mini_test/scaffold/templates/controller_test.rb", "lib/minitest-rails.rb", "lib/minitest/rails.rb", "lib/minitest/rails/action_controller.rb", "lib/minitest/rails/action_dispatch.rb", "lib/minitest/rails/action_mailer.rb", "lib/minitest/rails/action_view.rb", "lib/minitest/rails/active_support.rb", "lib/minitest/rails/constant_lookup.rb", "lib/minitest/rails/declarative.rb", "lib/minitest/rails/mochaing.rb", "lib/minitest/rails/tasks/minitest.rake", "lib/minitest/rails/tasks/sub_test_task.rb", "lib/minitest/rails/version.rb", "minitest-rails.gemspec", "tasks/gemfiles.rake", "tasks/test.rake", "test/generators/test_controller_generator.rb", "test/generators/test_helper_generator.rb", "test/generators/test_install_generator.rb", "test/generators/test_mailer_generator.rb", "test/generators/test_model_generator.rb", "test/generators/test_scaffold_generator.rb", "test/rails/action_controller/test_controllers.rb", "test/rails/action_controller/test_spec_type.rb", "test/rails/action_dispatch/test_spec_type.rb", "test/rails/action_mailer/test_mailers.rb", "test/rails/action_mailer/test_spec_type.rb", "test/rails/action_view/test_helpers.rb", "test/rails/action_view/test_spec_type.rb", "test/rails/active_support/test_spec_type.rb", "test/rails/test_constant_lookup.rb", "test/test_sanity.rb"]
13
+ s.files = [".autotest", ".gemtest", ".travis.yml", "CHANGELOG.rdoc", "LICENSE", "Manifest.txt", "README.rdoc", "Rakefile", "gemfiles/3.0.gemfile", "gemfiles/3.0.gemfile.lock", "gemfiles/3.1.gemfile", "gemfiles/3.1.gemfile.lock", "gemfiles/3.2.gemfile", "gemfiles/3.2.gemfile.lock", "gemfiles/4.0.gemfile", "gemfiles/4.0.gemfile.lock", "lib/autotest/discover.rb", "lib/autotest/fixtures.rb", "lib/autotest/migrate.rb", "lib/autotest/minitest_rails.rb", "lib/generators/mini_test.rb", "lib/generators/mini_test/controller/controller_generator.rb", "lib/generators/mini_test/controller/templates/controller_spec.rb", "lib/generators/mini_test/controller/templates/controller_test.rb", "lib/generators/mini_test/helper/helper_generator.rb", "lib/generators/mini_test/helper/templates/helper_spec.rb", "lib/generators/mini_test/helper/templates/helper_test.rb", "lib/generators/mini_test/install/install_generator.rb", "lib/generators/mini_test/install/templates/test/minitest_helper.rb", "lib/generators/mini_test/integration/integration_generator.rb", "lib/generators/mini_test/integration/templates/integration_spec.rb", "lib/generators/mini_test/integration/templates/integration_test.rb", "lib/generators/mini_test/mailer/mailer_generator.rb", "lib/generators/mini_test/mailer/templates/mailer_spec.rb", "lib/generators/mini_test/mailer/templates/mailer_test.rb", "lib/generators/mini_test/model/model_generator.rb", "lib/generators/mini_test/model/templates/fixtures.yml", "lib/generators/mini_test/model/templates/model_spec.rb", "lib/generators/mini_test/model/templates/model_test.rb", "lib/generators/mini_test/scaffold/scaffold_generator.rb", "lib/generators/mini_test/scaffold/templates/controller_spec.rb", "lib/generators/mini_test/scaffold/templates/controller_test.rb", "lib/minitest-rails.rb", "lib/minitest/rails.rb", "lib/minitest/rails/constant_lookup.rb", "lib/minitest/rails/tasks/minitest.rake", "lib/minitest/rails/tasks/sub_test_task.rb", "lib/minitest/rails/test_case.rb", "lib/minitest/rails/testing.rb", "lib/minitest/rails/version.rb", "minitest-rails.gemspec", "tasks/gemfiles.rake", "tasks/test.rake", "test/generators/test_controller_generator.rb", "test/generators/test_helper_generator.rb", "test/generators/test_install_generator.rb", "test/generators/test_mailer_generator.rb", "test/generators/test_model_generator.rb", "test/generators/test_scaffold_generator.rb", "test/helper.rb", "test/rails/action_controller/test_controllers.rb", "test/rails/action_controller/test_spec_type.rb", "test/rails/action_dispatch/test_spec_type.rb", "test/rails/action_mailer/test_mailers.rb", "test/rails/action_mailer/test_spec_type.rb", "test/rails/action_view/test_helpers.rb", "test/rails/action_view/test_spec_type.rb", "test/rails/active_support/test_spec_type.rb", "test/rails/test_constant_lookup.rb", "test/test_sanity.rb"]
14
14
  s.homepage = "http://blowmage.com/minitest-rails"
15
15
  s.rdoc_options = ["--main", "README.rdoc"]
16
16
  s.require_paths = ["lib"]
17
17
  s.rubyforge_project = "minitest-rails"
18
18
  s.rubygems_version = "1.8.23"
19
- s.summary = "MiniTest integration for Rails 3.x"
19
+ s.summary = "MiniTest integration for Rails 3 and 4"
20
20
  s.test_files = ["test/generators/test_controller_generator.rb", "test/generators/test_helper_generator.rb", "test/generators/test_install_generator.rb", "test/generators/test_mailer_generator.rb", "test/generators/test_model_generator.rb", "test/generators/test_scaffold_generator.rb", "test/rails/action_controller/test_controllers.rb", "test/rails/action_controller/test_spec_type.rb", "test/rails/action_dispatch/test_spec_type.rb", "test/rails/action_mailer/test_mailers.rb", "test/rails/action_mailer/test_spec_type.rb", "test/rails/action_view/test_helpers.rb", "test/rails/action_view/test_spec_type.rb", "test/rails/active_support/test_spec_type.rb", "test/rails/test_constant_lookup.rb", "test/test_sanity.rb"]
21
21
 
22
22
  if s.respond_to? :specification_version then
@@ -24,22 +24,22 @@ Gem::Specification.new do |s|
24
24
 
25
25
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
26
26
  s.add_runtime_dependency(%q<minitest>, ["~> 4.0"])
27
- s.add_runtime_dependency(%q<rails>, ["~> 3.0"])
27
+ s.add_runtime_dependency(%q<rails>, [">= 3.0"])
28
28
  s.add_development_dependency(%q<rdoc>, ["~> 3.10"])
29
29
  s.add_development_dependency(%q<fakefs>, ["~> 0.4"])
30
- s.add_development_dependency(%q<hoe>, ["~> 3.1"])
30
+ s.add_development_dependency(%q<hoe>, ["~> 3.4"])
31
31
  else
32
32
  s.add_dependency(%q<minitest>, ["~> 4.0"])
33
- s.add_dependency(%q<rails>, ["~> 3.0"])
33
+ s.add_dependency(%q<rails>, [">= 3.0"])
34
34
  s.add_dependency(%q<rdoc>, ["~> 3.10"])
35
35
  s.add_dependency(%q<fakefs>, ["~> 0.4"])
36
- s.add_dependency(%q<hoe>, ["~> 3.1"])
36
+ s.add_dependency(%q<hoe>, ["~> 3.4"])
37
37
  end
38
38
  else
39
39
  s.add_dependency(%q<minitest>, ["~> 4.0"])
40
- s.add_dependency(%q<rails>, ["~> 3.0"])
40
+ s.add_dependency(%q<rails>, [">= 3.0"])
41
41
  s.add_dependency(%q<rdoc>, ["~> 3.10"])
42
42
  s.add_dependency(%q<fakefs>, ["~> 0.4"])
43
- s.add_dependency(%q<hoe>, ["~> 3.1"])
43
+ s.add_dependency(%q<hoe>, ["~> 3.4"])
44
44
  end
45
45
  end
data/tasks/gemfiles.rake CHANGED
@@ -4,10 +4,11 @@ namespace :gemfiles do
4
4
  `bundle --gemfile=gemfiles/3.0.gemfile`
5
5
  `bundle --gemfile=gemfiles/3.1.gemfile`
6
6
  `bundle --gemfile=gemfiles/3.2.gemfile`
7
+ `bundle --gemfile=gemfiles/4.0.gemfile`
7
8
  end
8
9
  desc "Clear the gemfile lock files"
9
10
  task :clear do
10
- `rm gemfiles/3.*.gemfile.lock`
11
+ `rm gemfiles/*.gemfile.lock`
11
12
  end
12
13
  end
13
14
 
data/tasks/test.rake CHANGED
@@ -16,5 +16,11 @@ namespace :test do
16
16
  ENV["BUNDLE_GEMFILE"] = "gemfiles/3.2.gemfile"
17
17
  sh "bundle exec rake test"
18
18
  end
19
+
20
+ desc "Run tests against the 4.0 gemfile"
21
+ task "4.0" do
22
+ ENV["BUNDLE_GEMFILE"] = "gemfiles/4.0.gemfile"
23
+ sh "bundle exec rake test"
24
+ end
19
25
  end
20
26
 
@@ -1,71 +1,42 @@
1
- require "minitest/autorun"
2
- require "minitest-rails"
3
-
4
- require "rails"
5
- require "rails/generators"
6
-
1
+ require "helper"
7
2
  require "generators/mini_test/controller/controller_generator"
8
3
 
9
- require "fakefs/safe"
10
-
11
- class FakeFS::File
12
- def self.binread file
13
- File.open(file, "rb") { |f| f.read }
14
- end
15
- end
16
-
17
- class TestControllerGenerator < MiniTest::Unit::TestCase
18
- def setup
19
- Rails::Generators.no_color!
20
- FakeFS.activate!
21
- FakeFS::FileSystem.clone "lib/generators"
22
- end
23
-
24
- def teardown
25
- FakeFS::FileSystem.clear
26
- FakeFS.deactivate!
27
- end
4
+ class TestControllerGenerator < GeneratorTest
28
5
 
29
6
  def test_controller_generator
30
- out, err = capture_io do
7
+ assert_output(/create test\/controllers\/user_controller_test.rb/m) do
31
8
  MiniTest::Generators::ControllerGenerator.start ["user"]
32
9
  end
33
- assert_match(/create test\/controllers\/user_controller_test.rb/m, out)
34
10
  assert File.exists? "test/controllers/user_controller_test.rb"
35
11
  contents = File.read "test/controllers/user_controller_test.rb"
36
12
  assert_match(/class UserControllerTest/m, contents)
37
13
  end
38
14
 
39
15
  def test_namespaced_controller_generator
40
- out, err = capture_io do
16
+ assert_output(/create test\/controllers\/admin\/user_controller_test.rb/m) do
41
17
  MiniTest::Generators::ControllerGenerator.start ["admin/user"]
42
18
  end
43
- assert_match(/create test\/controllers\/admin\/user_controller_test.rb/m, out)
44
19
  assert File.exists? "test/controllers/admin/user_controller_test.rb"
45
20
  contents = File.read "test/controllers/admin/user_controller_test.rb"
46
21
  assert_match(/class Admin::UserControllerTest/m, contents)
47
22
  end
48
23
 
49
24
  def test_controller_generator_spec
50
- out, err = capture_io do
25
+ assert_output(/create test\/controllers\/user_controller_test.rb/m) do
51
26
  MiniTest::Generators::ControllerGenerator.start ["user", "--spec"]
52
27
  end
53
- assert_match(/create test\/controllers\/user_controller_test.rb/m, out)
54
28
  assert File.exists? "test/controllers/user_controller_test.rb"
55
29
  contents = File.read "test/controllers/user_controller_test.rb"
56
30
  assert_match(/describe UserController do/m, contents)
57
31
  end
58
32
 
59
33
  def test_namespaced_controller_generator_spec
60
- FakeFS do
61
- out, err = capture_io do
62
- MiniTest::Generators::ControllerGenerator.start ["admin/user", "--spec"]
63
- end
64
- assert_match(/create test\/controllers\/admin\/user_controller_test.rb/m, out)
65
- assert File.exists? "test/controllers/admin/user_controller_test.rb"
66
- contents = File.read "test/controllers/admin/user_controller_test.rb"
67
- assert_match(/describe Admin::UserController do/m, contents)
34
+ assert_output(/create test\/controllers\/admin\/user_controller_test.rb/m) do
35
+ MiniTest::Generators::ControllerGenerator.start ["admin/user", "--spec"]
68
36
  end
37
+ assert File.exists? "test/controllers/admin/user_controller_test.rb"
38
+ contents = File.read "test/controllers/admin/user_controller_test.rb"
39
+ assert_match(/describe Admin::UserController do/m, contents)
69
40
  end
70
41
 
71
42
  end