2012-01-27 11 views
12

Jestem nowy dla rspec i całkiem nowy dla szyn. Podczas pisania przypadków testowych dla kontrolerów zauważyłem często używane render_views. Co to oznacza i co się stanie, jeśli tego nie nazwie?Co robi render_views w rspec?

Odpowiedz

11

powoduje wyświetlenie widoku w specyfikacji kontrolera. Jeśli nie wstawisz view_views, widoki nie będą renderowane, co oznacza, że ​​kontroler jest wywoływany, ale po jego wykonaniu widoki nie są renderowane. Testy kontrolerów będą działały szybciej, ponieważ nie będą musiały renderować widoku, ale możesz pominąć błędy w widoku.

+0

OK ma sens. Więc jeśli mój kontroler nie ma powiązanych widoków, wywoływanie 'render_views' jest bezcelowe? Moje testy działają bez wywoływania 'render_views', więc myślę, że tak jest. – SundayMonday

+1

Tak, jeśli nie masz widoków, to jest punkt sporny – daniel

8

To około isolation. Pomysł polega na tym, że nie chcesz, aby dane kontrolera uległy awarii, ponieważ w widoku występuje błąd składniowy, który powinien spowodować niepowodzenie specyfikacji żądania lub specyfikacji widoku. Jeśli nie piszesz specyfikacji zamówienia lub specyfikacji widoku lub funkcji Ogórek, wtedy render_views może ci pomóc z perspektywy pokrycia testowego.

+0

Jak już zauważyłeś [tutaj] (https://groups.google.com/forum/?fromgroups#!topic/rspec/Gwnlou54x1M), dodam, że render_views może być również wykorzystany w specyfikacjach pomocnika, jeśli, powiedzmy, jest pomocnik, który renderuje części lub szablon. – aceofbassgreg