Unit Testing Custom Validation Method

I posted this on comp.lang.ruby and thought it would be in my best
interest to post it here too.

I’ve written a custom validation method (to validate an email
address). It looks like

module ActiveRecord
module Validations
module ClassMethods

  def validates_as_email
    ...
  end

end

end
end

I’ve put this code in app/lib/custom_validations.rb

Now, I’m trying to write a unit test but I’m running into problems.
One attempt at a unit test looks like

require File.dirname(FILE) + ‘/…/test_helper’
require ‘lib/custom_validations’

class CustomValidationsTest < Test::Unit::TestCase

def test_validates_as_email
email = “[email protected]
assert validates_as_email( email )
end
end

This throws a
NoMethodError: undefined method `validates_as_email’ for
#CustomValidationsTest:0x314bd80
It looks to me like the test is looking for the validates_as_email
method to be defined in CustomValidationsTest rather than finding it
in lib/custom_validations.rb

So, I tried this

require File.dirname(FILE) + ‘/…/test_helper’
require ‘lib/custom_validations’

class CustomValidationsTest < Test::Unit::TestCase

def test_validates_as_email
email = “[email protected]
assert
ActiveRecord::Validations::ClassMethods.validates_as_email( email )
end
end

And I got this error
NoMethodError: undefined method `validates_as_email’ for
ActiveRecord::Validations::ClassMethods:Module

What am I missing? I’ll bet it’s something simple, but I just can’t
figure out what’s wrong. Thanks for the help.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs