Just install this in your apps like so:
gem 'test-spec-mini', :git => 'git://gist.github.com/1806986.git', :require => 'mini'
Just install this in your apps like so:
gem 'test-spec-mini', :git => 'git://gist.github.com/1806986.git', :require => 'mini'
| ## | |
| # test/spec/mini 5 | |
| # http://gist.github.com/307649 | |
| # [email protected] | |
| # | |
| def context(*args, &block) | |
| return super unless (name = args.first) && block | |
| require 'test/unit' | |
| klass = Class.new(defined?(ActiveSupport::TestCase) ? ActiveSupport::TestCase : Test::Unit::TestCase) do | |
| def self.test(name, &block) | |
| define_method("test_#{name.to_s.gsub(/\W/,'_')}", &block) if block | |
| end | |
| def self.xtest(*args) end | |
| def self.context(*args, &block) instance_eval(&block) end | |
| def self.setup(&block) | |
| define_method(:setup) { self.class.setups.each { |s| instance_eval(&s) } } | |
| setups << block | |
| end | |
| def self.setups; @setups ||= [] end | |
| def self.teardown(&block) define_method(:teardown, &block) end | |
| end | |
| (class << klass; self end).send(:define_method, :name) { name.gsub(/\W/,'_') } | |
| klass.class_eval &block | |
| end |
| Gem::Specification.new do |s| | |
| s.name = 'test-spec-mini' | |
| s.version = '0.0.1' | |
| s.platform = Gem::Platform::RUBY | |
| s.author = 'Chris Wanstrath' | |
| s.email = '[email protected]' | |
| s.summary = 'test/spec/mini' | |
| s.description = 'Simple, neat test contexts.' | |
| s.files = ['mini.rb'] | |
| s.require_path = '.' | |
| end |
| require 'test/spec/mini' | |
| context "It's test/spec/mini!" do | |
| setup do | |
| @name = "Chris" | |
| end | |
| setup do | |
| puts "Stacked setups!" | |
| end | |
| teardown do | |
| @name = nil | |
| end | |
| test "with Test::Unit" do | |
| assert (self.class < Test::Unit::TestCase) | |
| end | |
| test "body-less test cases" | |
| test :symbol_test_names do | |
| assert true | |
| end | |
| xtest "disabled tests" do | |
| assert disabled! | |
| end | |
| context "and of course" do | |
| test "nested contexts!" do | |
| assert_equal "Chris", @name | |
| end | |
| end | |
| end |