2010-05-29 20 views
5

Wygenerowałem pewne rusztowanie dla aplikacji mojej szyny.Dlaczego moje testy funkcjonalne zawodzą?

Generuję wygenerowane testy i nie działają.

np

test "should create area" do 
    assert_difference('Area.count') do 
     post :create, :area => { :name => 'area1' } 
    end 

    assert_redirected_to area_path(assigns(:area)) 
    end 

Test ten zawodzi powiedzieć, że:

1) Brak: test_should_create_area (AreasControllerTest) [/test/functional/areas_controller_test.rb:16] "Area.count" nie zmieniło się o 1. < 3> oczekiwano, ale było < 2>.

W modelu występuje tylko jedno pole: nazwa. Zaludniam to, więc nie mogę, ponieważ nie udało mi się zaludnić jedynego pola.

Mogę uruchomić witrynę i utworzyć obszar o nazwie "area1". Rzeczywistość się powtarza, ale test się nie udaje.

Nie mogę zapytać, dlaczego to się nie udaje, ponieważ jestem pewien, że nie ma tutaj wystarczającej ilości informacji, aby ktokolwiek dowiedział się dlaczego. Po prostu utknąłem w wiedzy o tym, jakie są możliwości rozwiązania problemu, dlaczego test się nie udaje. Nawet umieszczanie kodu w kodzie nie jest drukowane ...

Co mogę zrobić, aby to sprawdzić?

+0

Tutaj powinny być pomocne dane wyjściowe z pliku test.log, dzięki czemu można sprawdzić, czy rzeczywiście tworzony jest obszar lub czy jest jakiś błąd SQL, który jest spożywany. – jdl

+0

Aaahh ... Ok, to pomaga. Test.log pokazuje mi, że test się nie udał, ponieważ nie jestem zalogowany. Ustawiłem go tak, aby tylko uwierzytelnieni użytkownicy mogli tworzyć obszary. Wszystko ma sens. Powinieneś udzielić tej odpowiedzi, aby ją zaakceptować! Dzięki –

Odpowiedz

2

Zgodnie z powyższym żądaniem i zgodnością z oczekiwaniami znalezionymi podczas kopania dzienników masz autoryzację, która nie jest spełniona w teście.

1

@ Zapytanie i @ odpowiedź są również przydatnymi obiektami do obejrzenia (tj. puts @response w teście). Nie wiem, jakiego uwierzytelnienia używasz, ale sprawdź RAILS_ROOT/lib dla authenticated_test_helper lub lub /test swojego klejnotu uwierzytelniania. Znajdziesz metody logowania.

Powiązane problemy