提交 181feecf 编写于 作者: J José Valim

First stub at app generators test.

上级 68739eed
......@@ -167,7 +167,7 @@ def create_vendor_files
def apply_rails_template
apply options[:template] if options[:template]
rescue LoadError, Errno::ENOENT => e
raise "The template [#{template}] could not be loaded. Error: #{e}"
raise Error, "The template [#{options[:template]}] could not be loaded. Error: #{e}"
end
def freeze?
......
......@@ -4,12 +4,11 @@
class ActionsTest < GeneratorTestCase
def setup
super
@git_plugin_uri = 'git://github.com/technoweenie/restful-authentication.git'
@svn_plugin_uri = 'svn://svnhub.com/technoweenie/restful-authentication/trunk'
end
def test_apply_loads_a_template_and_evaluates_it
def test_apply_loads_and_evaluates_a_template
template = <<-TEMPLATE
@foo = "FOO"
TEMPLATE
......
require 'abstract_unit'
require 'generator/generator_test_helper'
class AppTest < GeneratorTestCase
def test_application_skeleton_is_created
run_generator
%w(
app/controllers
app/helpers
app/models
app/views/layouts
config/environments
config/initializers
config/locales
db
doc
lib
lib/tasks
log
public/images
public/javascripts
public/stylesheets
script/performance
test/fixtures
test/functional
test/integration
test/performance
test/unit
vendor
vendor/plugins
tmp/sessions
tmp/sockets
tmp/cache
tmp/pids
).each{ |path| assert_file path }
end
def test_template_raises_an_error_with_invalid_path
content = capture(:stderr){ run_generator(["-m", "non/existant/path"]) }
assert_match /The template \[.*\] could not be loaded/, content
assert_match /non\/existant\/path/, content
end
def test_template_is_executed_when_supplied
path = "http://gist.github.com/103208.txt"
template = %{ say "It works!" }
template.instance_eval "def read; self; end" # Make the string respond to read
generator(:template => path, :database => "sqlite3").expects(:open).with(path).returns(template)
assert_match /It works!/, silence(:stdout){ generator.invoke(:all) }
end
protected
def run_generator(args=[])
silence(:stdout) { Rails::Generators::App.start [destination_root].concat(args) }
end
def generator(options={})
@generator ||= Rails::Generators::App.new([destination_root], options, :root => destination_root)
end
end
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册