Generating stubs for helper tests is overly specific. Most helpers should...

Generating stubs for helper tests is overly specific. Most helpers should simply be tested as part of the view thats using them. If you need something beyond that, you can add a test yourself for them
上级 cadc8a0d
......@@ -6,8 +6,6 @@ class HelperGenerator < NamedBase # :nodoc:
def create_helper_files
template 'helper.rb', File.join('app/helpers', class_path, "#{file_name}_helper.rb")
end
hook_for :test_framework
end
end
end
require 'rails/generators/test_unit'
module TestUnit # :nodoc:
module Generators # :nodoc:
class HelperGenerator < Base # :nodoc:
check_class_collision suffix: "HelperTest"
def create_helper_files
template 'helper_test.rb', File.join('test/helpers', class_path, "#{file_name}_helper_test.rb")
end
end
end
end
require 'test_helper'
<% module_namespacing do -%>
class <%= class_name %>HelperTest < ActionView::TestCase
end
<% end -%>
require 'generators/generators_test_helper'
require 'rails/generators/rails/helper/helper_generator'
ObjectHelper = Class.new
AnotherObjectHelperTest = Class.new
class HelperGeneratorTest < Rails::Generators::TestCase
include GeneratorsTestHelper
arguments %w(admin)
def test_helper_skeleton_is_created
run_generator
assert_file "app/helpers/admin_helper.rb", /module AdminHelper/
end
def test_invokes_default_test_framework
run_generator
assert_file "test/helpers/admin_helper_test.rb", /class AdminHelperTest < ActionView::TestCase/
end
def test_logs_if_the_test_framework_cannot_be_found
content = run_generator ["admin", "--test-framework=rspec"]
assert_match(/rspec \[not found\]/, content)
end
def test_check_class_collision
content = capture(:stderr){ run_generator ["object"] }
assert_match(/The name 'ObjectHelper' is either already used in your application or reserved/, content)
end
def test_check_class_collision_on_tests
content = capture(:stderr){ run_generator ["another_object"] }
assert_match(/The name 'AnotherObjectHelperTest' is either already used in your application or reserved/, content)
end
def test_namespaced_and_not_namespaced_helpers
run_generator ["products"]
# We have to require the generated helper to show the problem because
# the test helpers just check for generated files and contents but
# do not actually load them. But they have to be loaded (as in a real environment)
# to make the second generator run fail
require "#{destination_root}/app/helpers/products_helper"
assert_nothing_raised do
begin
run_generator ["admin::products"]
ensure
# cleanup
Object.send(:remove_const, :ProductsHelper)
end
end
end
end
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册