Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Rails/TDD: Create single valid record + valid attributes for post/forms + simple validation tests
tree: 6bfce886f0

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
lib
spec
README.markdown
Rakefile.rb
init.rb
install.rb

README.markdown

PROBLEM

  • fixtures are not maintainable
  • validation change, tests/code breaks
  • forms need to be filled with valid attributes

SOLUTION

(for RSpec and Test::Unit)

  • simple and robust validation testing User.email expected to be invalid when set to <xx@yy>
  • create a valid record without fixtures
  • create edge-case records without fixtures
  • use valid attributes to test a post or fill a form

INSTALL

Fill the test/valid_attributes.yml with 1 valid set of attributes per model (can be attr_protected or not-attr_accessible) Example:

user:
  name: Hans
  login: hand
  address_id: 1

When using Rspec: add to spec/spec_helper.rb:

Spec::Runner.configure do |config|
  ...
  config.include(ValidAttributes)
  ...
end

When using Test::Unit: add to test/test_helper.rb

include ValidAttributes

USAGE

  • assert_invalid_attributes(User, :email=>[nil,'s','@','asd@sdf'], :name=>[nil,'x','admin'])
  • set of valid attributes: valid_attributes User
  • a valid Record(new): valid User
  • a valid saved Record: create_valid User
  • an edge-case User: valid User, :name=>'oh noo it is too long'

CONTRIBUTORS

assert_invalid

Something went wrong with that request. Please try again.