Probleme beim Testdurchlauf / nach Handbuch v. JC Fischer

Testen einer Rails-Anwendung

Probleme beim Testdurchlauf / nach Handbuch v. JC Fischer

Beitragvon marcel_sad am 31.03.2009, 16:17

Hallo,

Ersteinmal ein großes Lob an das Werk von J.C. Fischer. Ich hänge jedoch am Punkt "Automatische Tests" fest, da ich nach jedem Testaufruf die Fehlermeldung bekomme, dass die Methode GET nicht aufgerufen werden kann!

meine pages_controller_test.rb sieht so aus:

Code: Alles auswählen
require 'test_helper'
require 'pages_controller'


class PagesControllerTest < Test::Unit::TestCase
 
  def setup
    @controller   = PagesController.new
    @request      = ActionController::TestRequest.new
    @response     = ActionController::TestResponse.new
  end

  def test_truth
    assert true
  end
 
 
  def test_index
    get :index
    assert_response :success
  end
 
  def test_show_with_valid_id
    get :show, :id => 1
    assert_response :success
  end
 
  def test_show_with_invalid_id
    get :show, :id => 99
    assert_response :success
  end

end


und meine page_test.rb:

Code: Alles auswählen
require 'test_helper'

class PageTest < ActiveSupport::TestCase
  # Replace this with your real tests.
  test "the truth" do
    assert true
  end
end


Hier hab ich noch nicht ganz verstanden, was der unterschied zwischen den beiden ist und warum ich beide brauche.

Jedenfalls bekomme ich beim Testen folgende Meldung:

Code: Alles auswählen
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby -I"/Users/marcelsadlowski/railsprojekte/referenz/lib" -I"/Users/marcelsadlowski/railsprojekte/referenz/test" "/Library/Ruby/Gems/1.8/gems/rake-0.8.4/lib/rake/rake_test_loader.rb" "test/unit/helpers/pages_helper_test.rb" "test/unit/page_test.rb"
Loaded suite /Library/Ruby/Gems/1.8/gems/rake-0.8.4/lib/rake/rake_test_loader
Started
E
Finished in 0.059287 seconds.

  1) Error:
test_the_truth(PageTest):
Fixture::FormatError: Bad data for Page fixture named two (nil)
   

1 tests, 0 assertions, 0 failures, 1 errors
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby -I"/Users/marcelsadlowski/railsprojekte/referenz/lib" -I"/Users/marcelsadlowski/railsprojekte/referenz/test" "/Library/Ruby/Gems/1.8/gems/rake-0.8.4/lib/rake/rake_test_loader.rb" "test/functional/pages_controller_test.rb"
Loaded suite /Library/Ruby/Gems/1.8/gems/rake-0.8.4/lib/rake/rake_test_loader
Started
EEE.
Finished in 0.032457 seconds.

  1) Error:
test_index(PagesControllerTest):
NoMethodError: undefined method `get' for #<PagesControllerTest:0x672280>
    /test/functional/pages_controller_test.rb:19:in `test_index'

  2) Error:
test_show_with_invalid_id(PagesControllerTest):
NoMethodError: undefined method `get' for #<PagesControllerTest:0x67226c>
    /test/functional/pages_controller_test.rb:29:in `test_show_with_invalid_id'

  3) Error:
test_show_with_valid_id(PagesControllerTest):
NoMethodError: undefined method `get' for #<PagesControllerTest:0x6721f4>
    /test/functional/pages_controller_test.rb:24:in `test_show_with_valid_id'

4 tests, 1 assertions, 0 failures, 3 errors
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby -I"/Users/marcelsadlowski/railsprojekte/referenz/lib" -I"/Users/marcelsadlowski/railsprojekte/referenz/test" "/Library/Ruby/Gems/1.8/gems/rake-0.8.4/lib/rake/rake_test_loader.rb" 
Errors running test:units and test:functionals!


würde mich sehr über zügige Hilfe freuen, da ich im Buch fortfahren möchte und den Fehler nicht übergehen will...

Vielen Dank,
Marcel
marcel_sad
 
Beiträge: 1
Registriert: 31.03.2009, 16:08

Re: Probleme beim Testdurchlauf / nach Handbuch v. JC Fischer

Beitragvon tohuwawohu am 08.04.2009, 08:23

Hallo Marcel,

vorab: ich bin blutiger RoR-Anfänger (daher kann ich zur Fehlerursache nicht viel sagen...) und arbeite auch mit dem Buch von JC Fischer. Meine Testklassen sehen etwas anders aus, vielleicht liegt das an der verwendeten Version von Rails. Jedenfalls lief bei mir praktisch alles wie beschrieben, nachdem ich wie im Buch auf S. 69 f. beschrieben auf die Fixtures verwiesen hatte.

Übrigens, bei mir wird in der pages_controller_test.rb eine Klasse vom Typ ActionController::TestCase instantiiert, nicht Test::Unit::TestCase - sie sieht momentan wie folgt aus:

Code: Alles auswählen
require 'test_helper'

class PagesControllerTest < ActionController::TestCase
  fixtures :pages
 
  test "index" do
    get :index
    assert_response 200
  end

  test "show with valid id" do
    get(:show, :id => 1)
    assert_response :success
  end

  test "show with invalid id" do
    get :show, :id => -1
    assert_response 404
  end

  test "edit" do
    get :edit, :id => 1
    assert_response :success
  end

  test "edit action" do
    get :edit, :id => 1
    assert assigns(:page)
    assert_equal assigns(:page).class, Page
    assert_equal assigns(:page).id, 1
  end
end


Viel Erfolg!
Florian
tohuwawohu
 
Beiträge: 2
Registriert: 07.04.2009, 16:58
Plz/Ort: Karlsruhe


Zurück zu Testen

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron