# This file is copied to ~/spec when you run 'ruby script/generate rspec' # from the project root directory. ENV["RAILS_ENV"] = "test" require File.expand_path(File.dirname(__FILE__) + "/../config/environment") require 'spec' require 'spec/rails' require 'skinny_spec' require 'scenarios' module LuckySneaks module ModelSpecHelpers module ExampleGroupLevelMethods def it_should_validate_length_of(attribute, options={}) maximum = options[:maximum] || (options[:within] || []).last || false minimum = options[:minimum] || (options[:within] || []).first || false raise ArgumentError unless maximum || minimum it "should not be valid if #{attribute} length is more than #{maximum}" do instance.send "#{attribute}=", 'x'*(maximum+1) instance.errors_on(attribute).should include( options[:message_too_long] || I18n.t('activerecord.errors.messages.too_long', :count => maximum) ) end if maximum it "should not be valid if #{attribute} length is less than #{minimum}" do instance.send "#{attribute}=", 'x'*(minimum-1) instance.errors_on(attribute).should include( options[:message_to_short] || I18n.t('activerecord.errors.messages.too_short', :count => minimum) ) end if minimum end end end end Spec::Runner.configure do |config| # If you're not using ActiveRecord you should remove these # lines, delete config/database.yml and disable :active_record # in your config/boot.rb config.use_transactional_fixtures = true config.use_instantiated_fixtures = false config.fixture_path = RAILS_ROOT + '/spec/fixtures/' # == Fixtures # # You can declare fixtures for each example_group like this: # describe "...." do # fixtures :table_a, :table_b # # Alternatively, if you prefer to declare them only once, you can # do so right here. Just uncomment the next line and replace the fixture # names with your fixtures. # # config.global_fixtures = :table_a, :table_b # # If you declare global fixtures, be aware that they will be declared # for all of your examples, even those that don't use them. # # You can also declare which fixtures to use (for example fixtures for test/fixtures): # # config.fixture_path = RAILS_ROOT + '/spec/fixtures/' # # == Mock Framework # # RSpec uses it's own mocking framework by default. If you prefer to # use mocha, flexmock or RR, uncomment the appropriate line: # # config.mock_with :mocha # config.mock_with :flexmock # config.mock_with :rr # # == Notes # # For more information take a look at Spec::Example::Configuration and Spec::Runner end