Running the Test

106 66

Running the Test in Rails


Next, we'll go ahead and run the test. As expected, the test fails and gives us the message from the "must have a body" test.
$ rake test:units
/usr/bin/ruby1.8 -Ilib:test "/usr/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake/rake_test_loader.rb" "test/unit/post_test.rb"
Loaded suite /usr/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake/rake_test_loader
Started
F.
Finished in 0.12814 seconds.

1) Failure:
test_must_have_a_body(PostTest)
[./test/unit/post_test.rb:11:in `test_must_have_a_body'
/usr/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/testing/setup_and_teardown.rb:60:in `__send__'
/usr/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/testing/setup_and_teardown.rb:60:in `run']:
Post was saved without a body.
<false> is not true.

2 tests, 2 assertions, 1 failures, 0 errors
rake aborted!
Command failed with status (1): [/usr/bin/ruby1.8 -Ilib:test "/usr/lib/ruby...]

(See full trace by running task with --trace)


Now, to implement the validation. A simple one-line addition to the Post model is all it takes.
class Post < ActiveRecord::Base
<b> validates_presence_of :body</b>
end

Run the tests again and make sure all the tests pass.
$ rake test:units
/usr/bin/ruby1.8 -Ilib:test "/usr/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake/rake_test_loader.rb" "test/unit/post_test.rb"
Loaded suite /usr/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake/rake_test_loader
Started
..
Finished in 0.108586 seconds.

2 tests, 2 assertions, 0 failures, 0 errors
Subscribe to our newsletter
Sign up here to get the latest news, updates and special offers delivered directly to your inbox.
You can unsubscribe at any time

Leave A Reply

Your email address will not be published.