Just happened to stumble upon the following article at caboo.se: [Handy dynamic rspec tip](http://www.caboo.se/articles/2008/1/21/handy-dynamic-rspec-tip#comments).
I immediately found a way of simplifying a test case that involves testing that an ever increasing number of videos can be transcoded:
```ruby
require File.dirname(__FILE__) + '/helper'
require File.dirname(__FILE__) + '/../lib/transcoder.rb'
context "Transcoder" do
Dir.glob('videos/*').each do |video|
it "should support #{video}" do
Transcoder.convert(video, "site/#{video}.flv")[:file_size].should > 0
end
end
end
```
You can also use it to test model validations:
```ruby
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
describe "Product" do
@@valid_product_attributes = {
:name => 'WTF',
:description => 'LOL',
:price => '10.0',
:tax => '22.0' }
before(:each) do
end
it "should create a new instance given valid attributes" do
Product.create!(@@valid_product_attributes)
end
@@valid_product_attributes.each do |name, value|
it "should not allow blank #{name}" do
lambda do
Product.create!(@@valid_product_attributes.except(name))
end.should raise_error(ActiveRecord::RecordInvalid)
end
end
end
```