From caa6a1cdf2bbb47b0353c05cb9c019178e79deb9 Mon Sep 17 00:00:00 2001 From: Nick Quaranto Date: Wed, 23 May 2012 22:52:20 -0400 Subject: [PATCH] fix test unit integration by using ActionController::TestCase instead of Test::Unit::TestCase --- db/schema.rb | 5 ++- features/integration_with_test_unit.feature | 43 +++++++++++++++++++++ lib/clearance/testing.rb | 6 +-- 3 files changed, 49 insertions(+), 5 deletions(-) create mode 100644 features/integration_with_test_unit.feature diff --git a/db/schema.rb b/db/schema.rb index ed6c05206..645c9d20e 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -1,3 +1,4 @@ +# encoding: UTF-8 # This file is auto-generated from the current state of the database. Instead # of editing this file, please use the migrations feature of Active Record to # incrementally modify your database, and then regenerate this schema definition. @@ -18,8 +19,8 @@ t.string "salt", :limit => 128 t.string "confirmation_token", :limit => 128 t.string "remember_token", :limit => 128 - t.datetime "created_at" - t.datetime "updated_at" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false end add_index "users", ["email"], :name => "index_users_on_email" diff --git a/features/integration_with_test_unit.feature b/features/integration_with_test_unit.feature new file mode 100644 index 000000000..d74ca1286 --- /dev/null +++ b/features/integration_with_test_unit.feature @@ -0,0 +1,43 @@ +Feature: integrate with test unit + + Background: + When I successfully run `bundle exec rails new testapp` + And I cd to "testapp" + And I remove the file "public/index.html" + And I remove the file "app/views/layouts/application.html.erb" + And I configure ActionMailer to use "localhost" as a host + And I configure a root route + And I add the "factory_girl_rails" gem + And I run `bundle install --local` + + Scenario: generate a Rails app, run the generators, and run the tests + When I successfully run `bundle exec rails generate clearance:install` + And I successfully run `bundle exec rake db:migrate --trace` + And I successfully run `bundle exec rails generate controller posts index` + And I add the "cucumber-rails" gem + And I write to "test/test_helper.rb" with: + """ + ENV["RAILS_ENV"] = "test" + require File.expand_path('../../config/environment', __FILE__) + require 'rails/test_help' + + class ActiveSupport::TestCase + fixtures :all + end + + require 'clearance/testing' + """ + And I write to "test/functionals/posts_controller_test.rb" with: + """ + require 'test_helper' + + class PostsControllerTest < ActionController::TestCase + test "should get index" do + sign_in + get :index + assert_response :success + end + end + """ + And I successfully run `bundle exec rake --trace` + Then the output should contain "1 tests, 1 assertions, 0 failures" diff --git a/lib/clearance/testing.rb b/lib/clearance/testing.rb index 4af3cb691..212565107 100644 --- a/lib/clearance/testing.rb +++ b/lib/clearance/testing.rb @@ -2,9 +2,9 @@ require 'clearance/testing/deny_access_matcher' require 'clearance/testing/helpers' -if defined?(Test::Unit::TestCase) - Test::Unit::TestCase.extend Clearance::Testing::Matchers - class Test::Unit::TestCase +if defined?(ActionController::TestCase) + ActionController::TestCase.extend Clearance::Testing::Matchers + class ActionController::TestCase include Clearance::Testing::Helpers end end