#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.
# 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




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
Yes, I agree. Multiple assertion is a bad practice since only the first assertion gets called if code changes alter behavior.