# DateTime validation and testing

**URL:** <https://www.ruby-forum.com/t/datetime-validation-and-testing/132364>\
**Category:** Rails\
**Created:** [March 19, 2008, 1:31pm UTC](https://www.ruby-forum.com/t/datetime-validation-and-testing/132364 "2008-03-19T13:31:27Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![fcano](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/e19adc/32.png) [@fcano](https://www.ruby-forum.com/u/fcano)\
**Post date:** [March 19, 2008, 1:31pm UTC](https://www.ruby-forum.com/t/datetime-validation-and-testing/132364/1 "2008-03-19T13:31:27Z")

</div>

Hi!

I have this test:

def test\_invalid\_date\_format  
project = Project.new(:name =\> “Terminar pÃ¡gina web”,  
:user\_id =\> “1”,  
:deadline =\> “fsafasdfa”)  
assert !project.valid?  
assert\_equal “Deadline has invalid syntax”,  
project.errors.on(:deadline)  
end

and I have this validation in the model:

protected

def validate  
if deadline.nil?  
return true  
else  
begin  
dt = DateTime.parse(deadline.to\_s)  
rescue ArgumentError  
errors.add(:deadline, “Deadline has invalid syntax”)  
end  
end  
end

When I execute this test I have this:

1. Failure:  
test\_invalid\_date\_format(ProjectTest)  
[project\_test.rb:47:in `test_invalid_date_format' /usr/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/testing/default.rb:7:in`run’]:  
 is not true.

How is this possible? Do not Datetime.parse returns false when it is not  
a correct datetime string? How do you validate and test DateTime fields?
