#12
Mar 30

Refactoring User Name Part 3

In the final part of this series you will see how to refactor your tests. Keeping tests clean is important because it will make testing easier to do in the future.
Download (9.8 MB, 4:03)
alternative download for iPod & Apple TV (6.4 MB, 4:03)
# user_test.rb
def test_full_name
  assert_equal 'John Doe', full_name('John', nil, 'Doe'), "nil middle initial"
  assert_equal 'John H. Doe', full_name('John', 'H', 'Doe'), "H middle initial"
  assert_equal 'John Doe', full_name('John', '', 'Doe'), "blank middle initial"
end

def full_name(first, middle, last)
  User.new(:first_name => first, :middle_initial => middle, :last_name => last).full_name
end

2 comments:

Michael Jun 30, 2007 at 18:00

I like how you showed the process of refactoring in this series, but I wouldn't recommend multiple assertions in one controller.

See http://blog.jayfields.com/2007/06/testing-one-assertion-per-test.html


Tomek Apr 05, 2008 at 01:51

Yes, I agree. Multiple assertion is a bad practice since only the first assertion gets called if code changes alter behavior.

Add your comment:

(required)

(not displayed)

(SKIP THIS ONE)


(required)

subscribe:
sponsored by:
if you want to help:
required:
Get Quicktime Player