KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I have started my journey with TDD in Rails and have run into a small issue regarding tests for model validations that I can't seem to find a solution to. Let's say I have a User model, class User < ActiveRecord::Base validates :username, :presence => true end and a simple test it "should require a username" do User.new(:username => "").should_not be_valid end This correctly tests the presence validation, but what if I want to be more specific? For example, testing full_messages on the errors object.. it "should require a username" do user = User.create(:username => "") user.errors[:username].should ~= /can't be blank/ end My concern about the initial attempt (using should_not be_valid) is that RSpec won't produce a descriptive error message. It simply says "expected valid? to return false, got true." However, the second test example has a minor drawback: it uses the create method instead of the new method in order to get at the errors object. I would like my tests to be more specific about what they're testing, but at the same time not have to touch a database. Anyone have any input?
Tags (comma-separated)
Save Edits
Cancel