Test na prezenetowanie danych

Ostatnia rzecz jaką potrzebuje to napisanie kilku testów i został mi jeden z którym nie mogę sobie poradzić. Mam napisać test który sprawdza czy główna strona prezentuje stronę projektów. Nie umiem napisać tego testu. Kod wyświetlania strony głównej :

[code]

Homepage


<%= render ‘layouts/css’ %>
<%= render ‘layouts/links’ %>

Projects :

<% @projects.each do |i| %> <% end %>
ID Link(Name) Posted : Delete?
<%= i.id %> <%= link_to i.name, i %> Added <%= time_ago_in_words(i.created_at) %> ago. <%= link_to "Delete", i, :method => :delete, :confirm => "You sure?", :title => "Delete #{i.name}" %>
[/code]

Jeśli to normalne testy z Railsów to myślę, że assert_select może być pomocny http://apidock.com/rails/ActionDispatch/Assertions/SelectorAssertions/assert_select

Już sobie dałem radę. Użyłem gema factories i zwykłego have selector :slight_smile:

Czasem warto się zastanowić jak “sztywne” powinny być testy. Zasadniczo chcielibyśmy je pisać tak by jeśli nie zmienią się wymagania a implementacja to wciąż powinny one przechodzić. W przeciwnym wypadku mamy większy narzut na ich utrzymanie i jest to raczej antypattern.

Czy z punktu widzenia użytkownika końcowego ficzer nie będzie działać jeśli lista projektów będzie zrealizowana za pomocą div’ów albo ul/li ? Zapewne będzie. Dlatego też fajnie by było napisać test w sposób, który to uwzględnia. Używanie selektorów jest pod tym względem nieco słabe. Daje radę ale może do nas kiedyś wrócić.