Superclass mismatch (Functional test)


#1

Hilo. I’m trying to build an app with TDD, but my first functional test
is a mess. The example from the book fails, and I haven’t found any
information on this issue. When I run my test, it throws:
C:\Users\NomNomNom\Documents\NetBeansProjects\Embark\test\functional\admin\author_controller_test.rb:4:
superclass mismatch for class AuthorControllerTest (TypeError)

Here is my test:

[code]require File.dirname(FILE) + ‘/…/…/test_helper’
require ‘admin/author_controller’
class Admin::AuthorControllerTest; def rescue_action(e) raise e end; end
class Admin::AuthorControllerTest < Test::Unit::TestCase
def setup
@controller = AuthorController.new
@request = ActionController::TestRequest.new
@response = ActionController::TestResponse.new
end

def test_new
get :new
assert_template ‘admin/author/new’
assert_tag ‘h1’, :content => ‘Create new author’
assert_tag ‘form’, :attributes => {:action => ‘/admin/author/create’}
end
end
[/code]

Thank you for any help. I’d gladly take a working example if you don’t
know what’s wrong with this specific code.


#2

On Mar 30, 7:58 pm, Cameron C. removed_email_address@domain.invalid
wrote:

class Admin::AuthorControllerTest < Test::Unit::TestCase
It’s these two line above: you’ve declared Admin::AuthorControllerTest
as deriving from Object , and the line below you say it derives from
Test::Unit::TestCase. The standard boiler plate should actually read

class Admin::AuthorController; def rescue_action(e) raise e end; end
class Admin::AuthorControllerTest < Test::Unit::TestCase

As of rails 2.1 you don’t that - you’re test file can just be

require File.dirname(FILE) + ‘/…/…/test_helper’
class Admin::AuthorControllerTest < ActionController::TestCase
def test_new

end
end

subclassing from ActionController::TestCase means you don’t need the
setup method or the funky error re-raising stuff.

Fred