From 81897709cb696a8c4f4a02fb806546bb1b7d7d57 Mon Sep 17 00:00:00 2001 From: Joe Ferris Date: Tue, 7 Apr 2009 18:42:40 -0400 Subject: [PATCH] Now running on RSpec --- test/test_helper.rb | 45 ++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 40 insertions(+), 5 deletions(-) diff --git a/test/test_helper.rb b/test/test_helper.rb index 89e6d7d..1015a8b 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -2,14 +2,49 @@ $: << File.join(File.dirname(__FILE__), '..', 'lib') $: << File.join(File.dirname(__FILE__)) require 'rubygems' +gem 'thoughtbot-shoulda', ">= 2.0.0" + require 'test/unit' require 'activerecord' -require 'factory_girl' -gem 'thoughtbot-shoulda', ">= 2.0.0" -require 'shoulda' + +require 'spec' +require 'spec/interop/test' +require 'spec/autorun' require 'rr' + +require 'shoulda' +require 'shoulda/test_unit' require 'models' -class Test::Unit::TestCase - include RR::Adapters::TestUnit +require 'factory_girl' + +Spec::Runner.configure do |config| + config.mock_with RR::Adapters::Rspec +end + +class Test::Unit::TestCase + def assert_received(subject, &block) + block.call(received(subject)).call + end +end + +# This hack is currently necessary to get spec/interop to pick up #should statements +module Shoulda + class Context + def create_test_from_should_hash(should) + test_name = ["test_", full_name, "should", "#{should[:name]}. "].flatten.join(' ').to_sym + + context = self + test_unit_class.send(:define_method, test_name) do + begin + context.run_parent_setup_blocks(self) + should[:before].bind(self).call if should[:before] + context.run_current_setup_blocks(self) + should[:block].bind(self).call + ensure + context.run_all_teardown_blocks(self) + end + end + end + end end