Sha256: 43de2d738a4a95b305b8b0cb62f3e693ea43c6d420ed46dcee6636b405565021

Contents?: true

Size: 1.91 KB

Versions: 6

Compression:

Stored size: 1.91 KB

Contents

# Utensils

Rspec stuff we use over and over again

## Installation

Add this line to your application's Gemfile:

    gem 'utensils', :group => :test

## Usage

1. Create `spec/support/utensils.rb`
2. Add whichever bits you need:

```ruby
require 'utensils/capybara_extensions'
require 'utensils/capybara_javascript'
require 'utensils/custom_matchers'
require 'utensils/database_cleaner'
require 'utensils/factory_girl'
require 'utensils/timecop'
require 'utensils/upload_macros'
require 'utensils/vcr'
```

### capybara_extensions

Allows you to use active record objects with capybara finders

```ruby
page.within(post) { click_link('Edit') }
page.find(book_2).drag_to(page.find(book_1))
```

### capybara_javascript

Switches javascript driver to capybara-webkit and ignores hidden
elements.

### custom_matchers

A set of convenient matchers for rspec

```ruby
page.should have_model(post) #looks for dom_id(post)
page.find(post).should have_class('current') #presence of html class
page.should have_image('banner.jpg') #presence of img
page.should have_image(recipe.photo) #presence of dragonfly photo
page.should have_order(recipe_3, recipe_1, recipe_2, within: '#recipes') #checks that objects are in a specific order
```

### database_cleaner

Sets up rspec to use database_cleaner instead of transactional fixtures

### factory_girl

Use shorthand for FactoryGirl, ie:

```ruby
# instead of:
FactoryGirl.create(:post)

# use:
create(:post)
```

### timecop

Resets timecop after each spec

### upload_macros

Provides fixture_file helper pointing to spec/fixtures directory

```ruby
Photo.create(:file => fixture_file('dummy.jpg')) #attaches spec/fixtures/dummy.jpg
```

### vcr

Disables all outgoing http requests except for examples marked with :allow_http, which will be cached with VCR

```ruby
describe 'examples' do
  it 'uses http cached with VCR', :allow_http do
    ...
  end
  it 'disables all outgoing http' do
    ...
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
utensils-0.0.11 README.md
utensils-0.0.10 README.md
utensils-0.0.9 README.md
utensils-0.0.8 README.md
utensils-0.0.7 README.md
utensils-0.0.6 README.md