minitest-rails 0.0.7 → 0.1
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.
- data/CHANGELOG.rdoc +22 -0
- data/LICENSE +20 -0
- data/Manifest.txt +30 -25
- data/README.rdoc +46 -15
- data/Rakefile +4 -4
- data/lib/generators/{minitest → mini_test}/controller/controller_generator.rb +5 -5
- data/lib/generators/{minitest/controller/templates/controller_test.rb → mini_test/controller/templates/controller_spec.rb} +6 -7
- data/lib/generators/mini_test/controller/templates/controller_test.rb +19 -0
- data/lib/generators/mini_test/helper/helper_generator.rb +19 -0
- data/lib/generators/{minitest → mini_test}/helper/templates/helper_test.rb +1 -1
- data/lib/generators/{minitest → mini_test}/install/install_generator.rb +1 -1
- data/lib/generators/mini_test/install/templates/test/minitest_helper.rb +25 -0
- data/lib/generators/mini_test/integration/integration_generator.rb +19 -0
- data/lib/generators/mini_test/integration/templates/integration_spec.rb +8 -0
- data/lib/generators/mini_test/integration/templates/integration_test.rb +7 -0
- data/lib/generators/{minitest → mini_test}/mailer/mailer_generator.rb +3 -3
- data/lib/generators/{minitest → mini_test}/mailer/templates/mailer_spec.rb +2 -2
- data/lib/generators/{minitest → mini_test}/mailer/templates/mailer_test.rb +5 -5
- data/lib/generators/{minitest → mini_test}/model/model_generator.rb +5 -5
- data/lib/generators/mini_test/model/templates/model_spec.rb +13 -0
- data/lib/generators/mini_test/model/templates/model_test.rb +9 -0
- data/lib/generators/mini_test/scaffold/scaffold_generator.rb +28 -0
- data/lib/generators/{minitest → mini_test}/scaffold/templates/controller_spec.rb +2 -6
- data/lib/generators/{minitest → mini_test}/scaffold/templates/controller_test.rb +3 -2
- data/lib/generators/{minitest.rb → mini_test.rb} +2 -2
- data/lib/minitest/rails/action_controller.rb +19 -0
- data/lib/minitest/rails/action_dispatch.rb +36 -0
- data/lib/minitest/rails/action_mailer.rb +17 -0
- data/lib/minitest/rails/action_view.rb +18 -0
- data/lib/minitest/rails/active_support.rb +68 -0
- data/lib/minitest/rails/tasks/minitest.rake +32 -15
- data/lib/minitest/rails.rb +54 -5
- data/lib/minitest-rails.rb +11 -5
- data/minitest-rails.gemspec +42 -0
- data/test/test_controller_generator.rb +30 -10
- data/test/test_helper_generator.rb +30 -5
- data/test/test_install_generator.rb +5 -13
- data/test/test_mailer_generator.rb +5 -6
- data/test/test_minitest.rb +2 -2
- data/test/test_model_generator.rb +27 -7
- data/test/test_scaffold_generator.rb +5 -8
- metadata +65 -41
- data/lib/generators/minitest/controller/templates/controller_spec.rb +0 -17
- data/lib/generators/minitest/helper/helper_generator.rb +0 -19
- data/lib/generators/minitest/install/templates/test/minitest_helper.rb +0 -61
- data/lib/generators/minitest/model/templates/model_spec.rb +0 -28
- data/lib/generators/minitest/model/templates/model_test.rb +0 -11
- data/lib/generators/minitest/scaffold/scaffold_generator.rb +0 -22
- data/lib/minitest/rails/controller.rb +0 -104
- data/lib/minitest/rails/fixtures.rb +0 -14
- data/lib/minitest/rails/helper.rb +0 -30
- data/lib/minitest/rails/mailer.rb +0 -8
- data/lib/minitest/rails/model.rb +0 -8
- data/lib/minitest/rails/spec.rb +0 -14
- /data/lib/generators/{minitest → mini_test}/helper/templates/helper_spec.rb +0 -0
- /data/lib/generators/{minitest → mini_test}/model/templates/fixtures.yml +0 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
require "minitest/rails/active_support"
|
|
2
|
+
require "action_mailer/test_case"
|
|
3
|
+
|
|
4
|
+
module MiniTest
|
|
5
|
+
module Rails
|
|
6
|
+
module ActionMailer
|
|
7
|
+
class TestCase < MiniTest::Rails::ActiveSupport::TestCase
|
|
8
|
+
# Use AM::TestCase for the base class when describing a mailer
|
|
9
|
+
register_spec_type(self) do |desc|
|
|
10
|
+
desc < ::ActionMailer::Base
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
include ::ActionMailer::TestCase::Behavior
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
require "minitest/rails/active_support"
|
|
2
|
+
require "action_view/test_case"
|
|
3
|
+
|
|
4
|
+
module MiniTest
|
|
5
|
+
module Rails
|
|
6
|
+
module ActionView
|
|
7
|
+
class TestCase < MiniTest::Rails::ActiveSupport::TestCase
|
|
8
|
+
TestController = ::ActionView::TestCase::TestController
|
|
9
|
+
include ::ActionView::TestCase::Behavior
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# Register by name, because Helpers are just modules
|
|
16
|
+
MiniTest::Spec.register_spec_type(/Helper$/, MiniTest::Rails::ActionView::TestCase)
|
|
17
|
+
MiniTest::Spec.register_spec_type(/HelperTest$/, MiniTest::Rails::ActionView::TestCase)
|
|
18
|
+
MiniTest::Spec.register_spec_type(/Helper Test$/, MiniTest::Rails::ActionView::TestCase)
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
require 'minitest/spec'
|
|
2
|
+
require 'active_support/testing/setup_and_teardown'
|
|
3
|
+
require 'active_support/testing/assertions'
|
|
4
|
+
require 'active_support/testing/deprecation'
|
|
5
|
+
require 'active_support/testing/declarative'
|
|
6
|
+
require 'active_support/testing/pending'
|
|
7
|
+
require 'active_support/testing/isolation'
|
|
8
|
+
require 'active_support/testing/mochaing'
|
|
9
|
+
require 'active_support/core_ext/kernel/reporting'
|
|
10
|
+
|
|
11
|
+
module MiniTest
|
|
12
|
+
module Rails
|
|
13
|
+
module ActiveSupport
|
|
14
|
+
class TestCase < ::MiniTest::Spec
|
|
15
|
+
|
|
16
|
+
# This is deprecated, but I don't want to change the Rails calls to it.
|
|
17
|
+
# Keep it here for now, until a better way presents itself...
|
|
18
|
+
def assert_block msg = nil
|
|
19
|
+
msg = message(msg) { "Expected block to return true value" }
|
|
20
|
+
assert yield, msg
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
if defined?(ActiveRecord::Base)
|
|
24
|
+
# Use AS::TestCase for the base class when describing a model
|
|
25
|
+
register_spec_type(self) do |desc|
|
|
26
|
+
desc < ActiveRecord::Base
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# For backward compatibility with Test::Unit
|
|
31
|
+
def build_message(message, template = nil, *args)
|
|
32
|
+
template = template.gsub('<?>', '<%s>')
|
|
33
|
+
message || sprintf(template, *args)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
Assertion = ::MiniTest::Assertion
|
|
37
|
+
alias_method :method_name, :name if method_defined? :name
|
|
38
|
+
alias_method :method_name, :__name__ if method_defined? :__name__
|
|
39
|
+
|
|
40
|
+
$tags = {}
|
|
41
|
+
def self.for_tag(tag)
|
|
42
|
+
yield if $tags[tag]
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def describe(*args, &block)
|
|
46
|
+
Kernel.describe(args, block)
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
include ::ActiveSupport::Testing::SetupAndTeardown
|
|
50
|
+
include ::ActiveSupport::Testing::Assertions
|
|
51
|
+
include ::ActiveSupport::Testing::Deprecation
|
|
52
|
+
include ::ActiveSupport::Testing::Pending
|
|
53
|
+
extend ::ActiveSupport::Testing::Declarative
|
|
54
|
+
|
|
55
|
+
# test/unit backwards compatibility methods
|
|
56
|
+
alias :assert_raise :assert_raises
|
|
57
|
+
alias :assert_not_nil :refute_nil
|
|
58
|
+
alias :assert_not_equal :refute_equal
|
|
59
|
+
alias :assert_no_match :refute_match
|
|
60
|
+
alias :assert_not_same :refute_same
|
|
61
|
+
|
|
62
|
+
def assert_nothing_raised(*args)
|
|
63
|
+
yield
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
@@ -1,29 +1,46 @@
|
|
|
1
1
|
require 'rake/testtask'
|
|
2
|
+
require 'rails/test_unit/sub_test_task'
|
|
2
3
|
|
|
3
|
-
|
|
4
|
+
TASKS = %w(models controllers helpers mailers acceptance) #views
|
|
5
|
+
MINITEST_TASKS = TASKS.map { |sub| "minitest:#{sub}" }
|
|
4
6
|
|
|
5
|
-
desc
|
|
7
|
+
desc "Runs minitest"
|
|
6
8
|
task :test do
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
end
|
|
14
|
-
end.compact
|
|
15
|
-
abort "Errors running #{errors * ', '}!" if errors.any?
|
|
9
|
+
Rake::Task['minitest'].invoke
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
desc "Runs #{MINITEST_TASKS.join(", ")} together"
|
|
13
|
+
task :minitest do
|
|
14
|
+
Rake::Task['minitest:run'].invoke
|
|
16
15
|
end
|
|
17
16
|
|
|
18
|
-
namespace
|
|
17
|
+
namespace 'minitest' do
|
|
18
|
+
|
|
19
19
|
task :prepare do
|
|
20
20
|
# Placeholder task for other Railtie and plugins to enhance. See Active Record for an example.
|
|
21
21
|
end
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
task :run do
|
|
24
|
+
errors = MINITEST_TASKS.collect do |task|
|
|
25
|
+
begin
|
|
26
|
+
Rake::Task[task].invoke
|
|
27
|
+
nil
|
|
28
|
+
rescue => e
|
|
29
|
+
{ :task => task, :exception => e }
|
|
30
|
+
end
|
|
31
|
+
end.compact
|
|
32
|
+
|
|
33
|
+
if errors.any?
|
|
34
|
+
puts errors.map { |e| "Errors running #{e[:task]}! #{e[:exception].inspect}" }.join("\n")
|
|
35
|
+
abort
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
TASKS.each do |sub|
|
|
40
|
+
Rails::SubTestTask.new(sub => 'minitest:prepare') do |t|
|
|
41
|
+
t.libs.push 'test'
|
|
26
42
|
t.pattern = "test/#{sub}/**/*_test.rb"
|
|
27
43
|
end
|
|
28
44
|
end
|
|
45
|
+
|
|
29
46
|
end
|
data/lib/minitest/rails.rb
CHANGED
|
@@ -1,5 +1,54 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
require "minitest/rails/
|
|
1
|
+
# Make double-sure the RAILS_ENV is not set to production,
|
|
2
|
+
# so fixtures aren't loaded into that environment
|
|
3
|
+
abort("Abort testing: Your Rails environment is running in production mode!") if Rails.env.production?
|
|
4
|
+
|
|
5
|
+
require "minitest/rails/active_support"
|
|
6
|
+
require "minitest/rails/action_controller"
|
|
7
|
+
require "minitest/rails/action_view"
|
|
8
|
+
require "minitest/rails/action_mailer"
|
|
9
|
+
require "minitest/rails/action_dispatch"
|
|
10
|
+
|
|
11
|
+
# Enable turn if it is available
|
|
12
|
+
begin
|
|
13
|
+
require 'turn/autorun'
|
|
14
|
+
rescue LoadError
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
module MiniTest
|
|
18
|
+
module Rails
|
|
19
|
+
def self.override_testunit!
|
|
20
|
+
Kernel.silence_warnings do
|
|
21
|
+
::ActiveSupport.const_set :TestCase, MiniTest::Rails::ActiveSupport::TestCase
|
|
22
|
+
::ActionController.const_set :TestCase, MiniTest::Rails::ActionController::TestCase
|
|
23
|
+
::ActionView.const_set :TestCase, MiniTest::Rails::ActionView::TestCase
|
|
24
|
+
::ActionMailer.const_set :TestCase, MiniTest::Rails::ActionMailer::TestCase
|
|
25
|
+
::ActionDispatch.const_set :IntegrationTest, MiniTest::Rails::ActionDispatch::IntegrationTest
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
if defined?(ActiveRecord::Base)
|
|
32
|
+
class MiniTest::Rails::ActiveSupport::TestCase
|
|
33
|
+
include ActiveRecord::TestFixtures
|
|
34
|
+
self.fixture_path = "#{Rails.root}/test/fixtures/"
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
MiniTest::Rails::ActionDispatch::IntegrationTest.fixture_path = MiniTest::Rails::ActiveSupport::TestCase.fixture_path
|
|
38
|
+
|
|
39
|
+
def create_fixtures(*table_names, &block)
|
|
40
|
+
ActiveRecord::Fixtures.create_fixtures(MiniTest::Rails::ActiveSupport::TestCase.fixture_path, table_names, {}, &block)
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
class MiniTest::Rails::ActionController::TestCase
|
|
45
|
+
setup do
|
|
46
|
+
@routes = Rails.application.routes
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
class MiniTest::Rails::ActionDispatch::IntegrationTest
|
|
51
|
+
setup do
|
|
52
|
+
@routes = Rails.application.routes
|
|
53
|
+
end
|
|
54
|
+
end
|
data/lib/minitest-rails.rb
CHANGED
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
require "rails"
|
|
2
2
|
require "minitest/unit"
|
|
3
3
|
|
|
4
|
-
module
|
|
4
|
+
module MiniTest
|
|
5
5
|
module Rails
|
|
6
|
-
VERSION = "0.
|
|
6
|
+
VERSION = "0.1"
|
|
7
7
|
class Railtie < ::Rails::Railtie
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
if ::Rails.version.to_f >= 3.1
|
|
9
|
+
config.app_generators.integration_tool :mini_test
|
|
10
|
+
config.app_generators.test_framework :mini_test
|
|
11
|
+
config.app_generators.fallbacks[:mini_test] = :test_unit
|
|
12
|
+
else
|
|
13
|
+
config.generators.integration_tool :mini_test
|
|
14
|
+
config.generators.test_framework :mini_test
|
|
15
|
+
config.generators.fallbacks[:mini_test] = :test_unit
|
|
16
|
+
end
|
|
11
17
|
|
|
12
18
|
rake_tasks do
|
|
13
19
|
load "minitest/rails/tasks/minitest.rake"
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
|
2
|
+
|
|
3
|
+
Gem::Specification.new do |s|
|
|
4
|
+
s.name = "minitest-rails"
|
|
5
|
+
s.version = "0.1.20120709115419"
|
|
6
|
+
|
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
8
|
+
s.authors = ["Mike Moore"]
|
|
9
|
+
s.date = "2012-07-09"
|
|
10
|
+
s.description = "Adds MiniTest as the default testing library in Rails 3."
|
|
11
|
+
s.email = ["mike@blowmage.com"]
|
|
12
|
+
s.extra_rdoc_files = ["CHANGELOG.rdoc", "Manifest.txt", "README.rdoc"]
|
|
13
|
+
s.files = [".autotest", ".gemtest", "CHANGELOG.rdoc", "LICENSE", "Manifest.txt", "README.rdoc", "Rakefile", "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/tasks/minitest.rake", "minitest-rails.gemspec", "test/test_controller_generator.rb", "test/test_helper_generator.rb", "test/test_install_generator.rb", "test/test_mailer_generator.rb", "test/test_minitest.rb", "test/test_model_generator.rb", "test/test_scaffold_generator.rb"]
|
|
14
|
+
s.homepage = "http://blowmage.com/minitest-rails"
|
|
15
|
+
s.rdoc_options = ["--main", "README.rdoc"]
|
|
16
|
+
s.require_paths = ["lib"]
|
|
17
|
+
s.rubyforge_project = "minitest-rails"
|
|
18
|
+
s.rubygems_version = "1.8.24"
|
|
19
|
+
s.summary = "MiniTest integration for Rails 3."
|
|
20
|
+
s.test_files = ["test/test_controller_generator.rb", "test/test_helper_generator.rb", "test/test_install_generator.rb", "test/test_mailer_generator.rb", "test/test_minitest.rb", "test/test_model_generator.rb", "test/test_scaffold_generator.rb"]
|
|
21
|
+
|
|
22
|
+
if s.respond_to? :specification_version then
|
|
23
|
+
s.specification_version = 3
|
|
24
|
+
|
|
25
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
|
26
|
+
s.add_runtime_dependency(%q<minitest>, ["~> 3.0"])
|
|
27
|
+
s.add_runtime_dependency(%q<rails>, ["~> 3.0"])
|
|
28
|
+
s.add_development_dependency(%q<rdoc>, ["~> 3.10"])
|
|
29
|
+
s.add_development_dependency(%q<hoe>, ["~> 3.0"])
|
|
30
|
+
else
|
|
31
|
+
s.add_dependency(%q<minitest>, ["~> 3.0"])
|
|
32
|
+
s.add_dependency(%q<rails>, ["~> 3.0"])
|
|
33
|
+
s.add_dependency(%q<rdoc>, ["~> 3.10"])
|
|
34
|
+
s.add_dependency(%q<hoe>, ["~> 3.0"])
|
|
35
|
+
end
|
|
36
|
+
else
|
|
37
|
+
s.add_dependency(%q<minitest>, ["~> 3.0"])
|
|
38
|
+
s.add_dependency(%q<rails>, ["~> 3.0"])
|
|
39
|
+
s.add_dependency(%q<rdoc>, ["~> 3.10"])
|
|
40
|
+
s.add_dependency(%q<hoe>, ["~> 3.0"])
|
|
41
|
+
end
|
|
42
|
+
end
|
|
@@ -4,41 +4,61 @@ require "minitest-rails"
|
|
|
4
4
|
require "rails"
|
|
5
5
|
require "rails/generators"
|
|
6
6
|
|
|
7
|
-
require "generators/
|
|
7
|
+
require "generators/mini_test/controller/controller_generator"
|
|
8
8
|
|
|
9
9
|
require "fileutils"
|
|
10
10
|
|
|
11
|
-
class TestControllerGenerator <
|
|
11
|
+
class TestControllerGenerator < MiniTest::Unit::TestCase
|
|
12
12
|
Rails::Generators.no_color!
|
|
13
13
|
|
|
14
14
|
def test_controller_generator
|
|
15
15
|
text = capture(:stdout) do
|
|
16
|
-
|
|
16
|
+
MiniTest::Generators::ControllerGenerator.start ["user"]
|
|
17
17
|
end
|
|
18
18
|
assert_match(/create test\/controllers\/user_controller_test.rb/m, text)
|
|
19
19
|
assert File.exists? "test/controllers/user_controller_test.rb"
|
|
20
20
|
contents = open("test/controllers/user_controller_test.rb").read
|
|
21
|
-
assert_match(/class UserControllerTest
|
|
22
|
-
assert_match(/def test_sanity/m, contents)
|
|
21
|
+
assert_match(/class UserControllerTest/m, contents)
|
|
23
22
|
ensure
|
|
24
23
|
# TODO: Don"t write the files
|
|
25
24
|
# I agree, it would be better to mock the file getting written
|
|
26
25
|
FileUtils.rm_r "test/controllers"
|
|
27
26
|
end
|
|
28
27
|
|
|
28
|
+
def test_namespaced_controller_generator
|
|
29
|
+
text = capture(:stdout) do
|
|
30
|
+
MiniTest::Generators::ControllerGenerator.start ["admin/user"]
|
|
31
|
+
end
|
|
32
|
+
assert_match(/create test\/controllers\/admin\/user_controller_test.rb/m, text)
|
|
33
|
+
assert File.exists? "test/controllers/admin/user_controller_test.rb"
|
|
34
|
+
contents = open("test/controllers/admin/user_controller_test.rb").read
|
|
35
|
+
assert_match(/class Admin::UserControllerTest/m, contents)
|
|
36
|
+
ensure
|
|
37
|
+
FileUtils.rm_r "test/controllers"
|
|
38
|
+
end
|
|
39
|
+
|
|
29
40
|
def test_controller_generator_spec
|
|
30
41
|
text = capture(:stdout) do
|
|
31
|
-
|
|
42
|
+
MiniTest::Generators::ControllerGenerator.start ["user", "--spec"]
|
|
32
43
|
end
|
|
33
44
|
assert_match(/create test\/controllers\/user_controller_test.rb/m, text)
|
|
34
45
|
assert File.exists? "test/controllers/user_controller_test.rb"
|
|
35
46
|
contents = open("test/controllers/user_controller_test.rb").read
|
|
36
47
|
assert_match(/describe UserController do/m, contents)
|
|
37
|
-
assert_match(/subject \{ UserController \}/m, contents)
|
|
38
|
-
assert_match(/# fixtures :all/m, contents)
|
|
39
|
-
assert_match(/@controller = UserController.new/m, contents)
|
|
40
|
-
assert_match(/it "must be a real test"/m, contents)
|
|
41
48
|
ensure
|
|
42
49
|
FileUtils.rm_r "test/controllers"
|
|
43
50
|
end
|
|
51
|
+
|
|
52
|
+
def test_namespaced_controller_generator_spec
|
|
53
|
+
text = capture(:stdout) do
|
|
54
|
+
MiniTest::Generators::ControllerGenerator.start ["admin/user", "--spec"]
|
|
55
|
+
end
|
|
56
|
+
assert_match(/create test\/controllers\/admin\/user_controller_test.rb/m, text)
|
|
57
|
+
assert File.exists? "test/controllers/admin/user_controller_test.rb"
|
|
58
|
+
contents = open("test/controllers/admin/user_controller_test.rb").read
|
|
59
|
+
assert_match(/describe Admin::UserController do/m, contents)
|
|
60
|
+
ensure
|
|
61
|
+
FileUtils.rm_r "test/controllers"
|
|
62
|
+
end
|
|
63
|
+
|
|
44
64
|
end
|
|
@@ -4,30 +4,42 @@ require "minitest-rails"
|
|
|
4
4
|
require "rails"
|
|
5
5
|
require "rails/generators"
|
|
6
6
|
|
|
7
|
-
require "generators/
|
|
7
|
+
require "generators/mini_test/helper/helper_generator"
|
|
8
8
|
|
|
9
9
|
require "fileutils"
|
|
10
10
|
|
|
11
|
-
class TestHelperGenerator <
|
|
11
|
+
class TestHelperGenerator < MiniTest::Unit::TestCase
|
|
12
12
|
Rails::Generators.no_color!
|
|
13
13
|
|
|
14
14
|
def test_helper_generator
|
|
15
15
|
text = capture(:stdout) do
|
|
16
|
-
|
|
16
|
+
MiniTest::Generators::HelperGenerator.start ["user"]
|
|
17
17
|
end
|
|
18
18
|
assert_match(/create test\/helpers\/user_helper_test.rb/m, text)
|
|
19
19
|
assert File.exists? "test/helpers/user_helper_test.rb"
|
|
20
20
|
contents = open("test/helpers/user_helper_test.rb").read
|
|
21
|
-
assert_match(/class UserHelperTest <
|
|
21
|
+
assert_match(/class UserHelperTest < MiniTest::Unit::TestCase/m, contents)
|
|
22
22
|
ensure
|
|
23
23
|
# TODO: Don"t write the files
|
|
24
24
|
# I agree, it would be better to mock the file getting written
|
|
25
25
|
FileUtils.rm_r "test/helpers"
|
|
26
26
|
end
|
|
27
27
|
|
|
28
|
+
def test_namespaced_helper_generator
|
|
29
|
+
text = capture(:stdout) do
|
|
30
|
+
MiniTest::Generators::HelperGenerator.start ["admin/user"]
|
|
31
|
+
end
|
|
32
|
+
assert_match(/create test\/helpers\/admin\/user_helper_test.rb/m, text)
|
|
33
|
+
assert File.exists? "test/helpers/admin/user_helper_test.rb"
|
|
34
|
+
contents = open("test/helpers/admin/user_helper_test.rb").read
|
|
35
|
+
assert_match(/class Admin::UserHelperTest < MiniTest::Unit::TestCase/m, contents)
|
|
36
|
+
ensure
|
|
37
|
+
FileUtils.rm_r "test/helpers"
|
|
38
|
+
end
|
|
39
|
+
|
|
28
40
|
def test_helper_generator_spec
|
|
29
41
|
text = capture(:stdout) do
|
|
30
|
-
|
|
42
|
+
MiniTest::Generators::HelperGenerator.start ["user", "--spec"]
|
|
31
43
|
end
|
|
32
44
|
assert_match(/create test\/helpers\/user_helper_test.rb/m, text)
|
|
33
45
|
assert File.exists? "test/helpers/user_helper_test.rb"
|
|
@@ -36,4 +48,17 @@ class TestHelperGenerator < Minitest::Unit::TestCase
|
|
|
36
48
|
ensure
|
|
37
49
|
FileUtils.rm_r "test/helpers"
|
|
38
50
|
end
|
|
51
|
+
|
|
52
|
+
def test_helper_generator_spec
|
|
53
|
+
text = capture(:stdout) do
|
|
54
|
+
MiniTest::Generators::HelperGenerator.start ["admin/user", "--spec"]
|
|
55
|
+
end
|
|
56
|
+
assert_match(/create test\/helpers\/admin\/user_helper_test.rb/m, text)
|
|
57
|
+
assert File.exists? "test/helpers/admin/user_helper_test.rb"
|
|
58
|
+
contents = open("test/helpers/admin/user_helper_test.rb").read
|
|
59
|
+
assert_match(/describe Admin::UserHelper do/m, contents)
|
|
60
|
+
ensure
|
|
61
|
+
FileUtils.rm_r "test/helpers"
|
|
62
|
+
end
|
|
63
|
+
|
|
39
64
|
end
|
|
@@ -4,30 +4,22 @@ require "minitest-rails"
|
|
|
4
4
|
require "rails"
|
|
5
5
|
require "rails/generators"
|
|
6
6
|
|
|
7
|
-
require "generators/
|
|
7
|
+
require "generators/mini_test/install/install_generator"
|
|
8
8
|
|
|
9
9
|
require "fileutils"
|
|
10
10
|
|
|
11
|
-
class TestInstallGenerator <
|
|
11
|
+
class TestInstallGenerator < MiniTest::Unit::TestCase
|
|
12
12
|
Rails::Generators.no_color!
|
|
13
13
|
|
|
14
14
|
def test_install_generator
|
|
15
15
|
text = capture(:stdout) do
|
|
16
|
-
|
|
16
|
+
MiniTest::Generators::InstallGenerator.start
|
|
17
17
|
end
|
|
18
18
|
assert_match(/create test\/minitest_helper.rb/m, text)
|
|
19
19
|
assert File.exists? "test/minitest_helper.rb"
|
|
20
20
|
contents = open("test/minitest_helper.rb").read
|
|
21
|
-
assert_match(/
|
|
22
|
-
assert_match(
|
|
23
|
-
assert_match(/class Minitest::Rails::Model/m, contents)
|
|
24
|
-
assert_match(/Minitest::Spec.register_spec_type\(Minitest::Rails::Model\) do/m, contents)
|
|
25
|
-
assert_match(/class Minitest::Rails::Controller/m, contents)
|
|
26
|
-
assert_match(/Minitest::Spec.register_spec_type\(\/Controller\$\/, Minitest::Rails::Controller\)/m, contents)
|
|
27
|
-
assert_match(/class Minitest::Rails::Helper/m, contents)
|
|
28
|
-
assert_match(/Minitest::Spec.register_spec_type\(\/Helper\$\/, Minitest::Rails::Helper\)/m, contents)
|
|
29
|
-
assert_match(/class Minitest::Rails::Mailer/m, contents)
|
|
30
|
-
assert_match(/Minitest::Spec.register_spec_type\(Minitest::Rails::Mailer\) do/m, contents)
|
|
21
|
+
assert_match(/require "minitest\/autorun"/m, contents)
|
|
22
|
+
assert_match(/require "minitest\/rails"/m, contents)
|
|
31
23
|
ensure
|
|
32
24
|
# TODO: Don"t write the files
|
|
33
25
|
# I agree, it would be better to mock the file getting written
|
|
@@ -4,21 +4,21 @@ require "minitest-rails"
|
|
|
4
4
|
require "rails"
|
|
5
5
|
require "rails/generators"
|
|
6
6
|
|
|
7
|
-
require "generators/
|
|
7
|
+
require "generators/mini_test/mailer/mailer_generator"
|
|
8
8
|
|
|
9
9
|
require "fileutils"
|
|
10
10
|
|
|
11
|
-
class TestMailerGenerator <
|
|
11
|
+
class TestMailerGenerator < MiniTest::Unit::TestCase
|
|
12
12
|
Rails::Generators.no_color!
|
|
13
13
|
|
|
14
14
|
def test_mailer_generator
|
|
15
15
|
text = capture(:stdout) do
|
|
16
|
-
|
|
16
|
+
MiniTest::Generators::MailerGenerator.start ["notification"]
|
|
17
17
|
end
|
|
18
18
|
assert_match(/create test\/mailers\/notification_test.rb/m, text)
|
|
19
19
|
assert File.exists? "test/mailers/notification_test.rb"
|
|
20
20
|
contents = open("test/mailers/notification_test.rb").read
|
|
21
|
-
assert_match(/class NotificationTest
|
|
21
|
+
assert_match(/class NotificationTest/m, contents)
|
|
22
22
|
ensure
|
|
23
23
|
# TODO: Don"t write the files
|
|
24
24
|
# I agree, it would be better to mock the file getting written
|
|
@@ -27,13 +27,12 @@ class TestMailerGenerator < Minitest::Unit::TestCase
|
|
|
27
27
|
|
|
28
28
|
def test_mailer_generator_spec
|
|
29
29
|
text = capture(:stdout) do
|
|
30
|
-
|
|
30
|
+
MiniTest::Generators::MailerGenerator.start ["notification", "welcome", "--spec"]
|
|
31
31
|
end
|
|
32
32
|
assert_match(/create test\/mailers\/notification_test.rb/m, text)
|
|
33
33
|
assert File.exists? "test/mailers/notification_test.rb"
|
|
34
34
|
contents = open("test/mailers/notification_test.rb").read
|
|
35
35
|
assert_match(/describe Notification do/m, contents)
|
|
36
|
-
assert_match(/it "welcome" do/m, contents)
|
|
37
36
|
ensure
|
|
38
37
|
FileUtils.rm_r "test/mailers"
|
|
39
38
|
end
|
data/test/test_minitest.rb
CHANGED
|
@@ -4,37 +4,57 @@ require "minitest-rails"
|
|
|
4
4
|
require "rails"
|
|
5
5
|
require "rails/generators"
|
|
6
6
|
|
|
7
|
-
require "generators/
|
|
7
|
+
require "generators/mini_test/model/model_generator"
|
|
8
8
|
|
|
9
9
|
require "fileutils"
|
|
10
10
|
|
|
11
|
-
class TestModelGenerator <
|
|
11
|
+
class TestModelGenerator < MiniTest::Unit::TestCase
|
|
12
12
|
Rails::Generators.no_color!
|
|
13
13
|
|
|
14
14
|
def test_model_generator
|
|
15
15
|
text = capture(:stdout) do
|
|
16
|
-
|
|
16
|
+
MiniTest::Generators::ModelGenerator.start ["user"]
|
|
17
17
|
end
|
|
18
18
|
assert_match(/create test\/models\/user_test.rb/m, text)
|
|
19
19
|
assert File.exists? "test/models/user_test.rb"
|
|
20
20
|
contents = open("test/models/user_test.rb").read
|
|
21
|
-
assert_match(/class UserTest
|
|
21
|
+
assert_match(/class UserTest/m, contents)
|
|
22
22
|
ensure
|
|
23
23
|
# TODO: Don"t write the files
|
|
24
24
|
# I agree, it would be better to mock the file getting written
|
|
25
25
|
FileUtils.rm_r "test/models"
|
|
26
|
+
FileUtils.rm_r "test/fixtures"
|
|
26
27
|
end
|
|
27
28
|
|
|
28
29
|
def test_model_generator_spec
|
|
29
30
|
text = capture(:stdout) do
|
|
30
|
-
|
|
31
|
+
MiniTest::Generators::ModelGenerator.start ["user", "--spec"]
|
|
31
32
|
end
|
|
32
33
|
assert_match(/create test\/models\/user_test.rb/m, text)
|
|
33
34
|
assert File.exists? "test/models/user_test.rb"
|
|
35
|
+
assert File.exists? "test/fixtures/users.yml"
|
|
34
36
|
contents = open("test/models/user_test.rb").read
|
|
35
37
|
assert_match(/describe User do/m, contents)
|
|
36
|
-
|
|
37
|
-
|
|
38
|
+
ensure
|
|
39
|
+
FileUtils.rm_r "test/models"
|
|
40
|
+
FileUtils.rm_r "test/fixtures"
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def test_model_generator_fixture
|
|
44
|
+
text = capture(:stdout) do
|
|
45
|
+
MiniTest::Generators::ModelGenerator.start ["user"]
|
|
46
|
+
end
|
|
47
|
+
assert File.exists? "test/fixtures/users.yml"
|
|
48
|
+
ensure
|
|
49
|
+
FileUtils.rm_r "test/models"
|
|
50
|
+
FileUtils.rm_r "test/fixtures"
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def test_model_generator_no_fixture
|
|
54
|
+
text = capture(:stdout) do
|
|
55
|
+
MiniTest::Generators::ModelGenerator.start ["user", "--skip-fixture"]
|
|
56
|
+
end
|
|
57
|
+
refute File.exists? "test/fixtures/users.yml"
|
|
38
58
|
ensure
|
|
39
59
|
FileUtils.rm_r "test/models"
|
|
40
60
|
end
|
|
@@ -4,22 +4,21 @@ require "minitest-rails"
|
|
|
4
4
|
require "rails"
|
|
5
5
|
require "rails/generators"
|
|
6
6
|
|
|
7
|
-
require "generators/
|
|
7
|
+
require "generators/mini_test/scaffold/scaffold_generator"
|
|
8
8
|
|
|
9
9
|
require "fileutils"
|
|
10
10
|
|
|
11
|
-
class TestScaffoldGenerator <
|
|
11
|
+
class TestScaffoldGenerator < MiniTest::Unit::TestCase
|
|
12
12
|
Rails::Generators.no_color!
|
|
13
13
|
|
|
14
14
|
def test_scaffold_generator
|
|
15
15
|
text = capture(:stdout) do
|
|
16
|
-
|
|
16
|
+
MiniTest::Generators::ScaffoldGenerator.start ["user"]
|
|
17
17
|
end
|
|
18
18
|
assert_match(/create test\/controllers\/user_controller_test.rb/m, text)
|
|
19
19
|
assert File.exists? "test/controllers/user_controller_test.rb"
|
|
20
20
|
contents = open("test/controllers/user_controller_test.rb").read
|
|
21
|
-
assert_match(/class UserControllerTest
|
|
22
|
-
assert_match(/def test_index/m, contents)
|
|
21
|
+
assert_match(/class UserControllerTest/m, contents)
|
|
23
22
|
ensure
|
|
24
23
|
# TODO: Don"t write the files
|
|
25
24
|
# I agree, it would be better to mock the file getting written
|
|
@@ -28,14 +27,12 @@ class TestScaffoldGenerator < Minitest::Unit::TestCase
|
|
|
28
27
|
|
|
29
28
|
def test_scaffold_generator_spec
|
|
30
29
|
text = capture(:stdout) do
|
|
31
|
-
|
|
30
|
+
MiniTest::Generators::ScaffoldGenerator.start ["user", "--spec"]
|
|
32
31
|
end
|
|
33
32
|
assert_match(/create test\/controllers\/user_controller_test.rb/m, text)
|
|
34
33
|
assert File.exists? "test/controllers/user_controller_test.rb"
|
|
35
34
|
contents = open("test/controllers/user_controller_test.rb").read
|
|
36
35
|
assert_match(/describe UserController do/m, contents)
|
|
37
|
-
assert_match(/subject \{ UserController \}/m, contents)
|
|
38
|
-
assert_match(/it "must get index"/m, contents)
|
|
39
36
|
ensure
|
|
40
37
|
FileUtils.rm_r "test/controllers"
|
|
41
38
|
end
|