VIew helpers for building views that are easily inspected via Capybara so you don't have to care about markup.
Go to file
John Bintz ff2202a8f4 Merge branch 'master' of github.com:johnbintz/semantic_rails_view_helpers 2013-01-12 13:39:18 -05:00
lib Merge branch 'master' of github.com:johnbintz/semantic_rails_view_helpers 2013-01-12 13:39:18 -05:00
.gitignore initial commit, messing around 2012-11-19 08:39:43 -05:00
Gemfile initial commit, messing around 2012-11-19 08:39:43 -05:00
LICENSE initial commit, messing around 2012-11-19 08:39:43 -05:00
README.md fixes 2012-12-08 11:28:07 -05:00
Rakefile initial commit, messing around 2012-11-19 08:39:43 -05:00
semantic_rails_view_helpers.gemspec will need to include capybara and rspec elsewhere for this to work nicely 2013-01-04 10:21:53 -05:00

README.md

Make your Rails Capybara testing even faster and more accurate! Looking for text strings is for the birds.

Your Views

It's easier to find things in Capybara tests if you add extra data attributes to fields and such. This gem does that for you if you link to and refer to things in a certain way. If you do, your tests turn from text blob and CSS selector messes to nice, clean, simple references to objects and attributes.

Attributes

Write out attributes using attributes_for:

#object
  = attributes_for object do |f|
    %h2= f.field(:name)
    %h3= f.field(:description)

Then look for those fields using Capybara! Because you shouldn't care about the DOM, just that your field is in there:

@object = Object.create!(:name => @name, :description => @description)

visit object_path(@object)

find_attribute(:name, @object.name)
find_attribute(:description, @object.description)

You can even make simple tables, a la Active Admin:

#object
  = attributes_table_for object do |f|
    = f.field :name
    = f.field :description

Not Finding Things

Sometimes the absence of a thing is just as important as the presence of a thing. Make it easy on yourself:

# selector's not there

dont_find('#user')

# object's not there