This note describes a Cucumber step definition that lets you test whether or not a CSS selector is present on...

github.com

Sometimes you inherit a non Rails or non Rack based web app such as PHP, Perl, Java / JEE, etc. I...

These steps are now part of Spreewald. This note describes a Cucumber step that lets you write this:

Both these approaches will keep your GET parameters – and will only work for GET requests. Capybara: When /^I reload the...

youtube.com

power-rake db:migrate VERSION=20100913132321 By default the environments development, test, cucumber and performance are considered...

You should test the callback methods and its correct invocation in two separate tests. Understand the ActiveRecord note before you...

When submitting textareas, browsers sometimes include carriage returns (\r) instead of just line feeds (\n) at the end of each...

When a spec only runs when it is called directly, but not as part of the whole test suite, make...

makandra dev

This is an awesome gadget in your toolbox, even if your test coverage is great. gem install ruby-debug (Ruby...

Our gem Mail Magnet allows you to override e-mail recipients in ActionMailer so all mails go to a given...

def task_with_hoptoad_notification(options) task(options) do begin yield rescue Exception => e Airbrake.notify(e) raise e

Sometimes you want to fetch associations for an ActiveRecord that you already loaded, e.g. when it has deeply nested associations...

github.com

There are three ways to define your own RSpec matchers, with increasing complexibility and options: 1) Use RSpec::Matchers.define

When you roll custom URLs with hacks like routing-filter, you can put a spec like this into spec/routing/routing_spec.rb:

Spreewald has steps that let you test that e-mails have been sent, using arbitrary conditions in any combination.

regular-expressions.info

You can write regular expressions some different ways, e.g. /regex/ and %r{regex}. For examples, look here. Remember that it...

github.com

An alternative to this technique is using VCR. VCR allows you to record and replay real HTTP responses, saving you...

Most of these will not work in newer projects because these use the Capybara/Rack::Test combo in lieu of Webrat...

With defaults, RCov doesn't work the way you how you would like it to. To create a nice test...

makandra dev

To test concurrent code, you will need to run multiple threads. Unfortunately, when you use blocking system calls (e.g. locks...

makandra dev

Install gem and plugin sudo gem install parallel script/plugin install git://github.com/grosser/parallel_tests.git Adapt config/database.yml test: database: xxx_test<%= ENV...

When you need to patch an existing gem, one way is to "vendor" the gem by copying it into the...

To run a single test file: rake test:units TEST=test/unit/post_test.rb rake test:functionals TEST=test/functional/posts_controller_test.rb rake test:integration TEST...

makandra dev

Basic configuration Please keep this config simple. It should be a starting point for new developers learning Git. [user]