Sprytne testowanie modelu w Ruby on Rails
Załóżmy, że mamy jakiś model w Ruby on Rails, np. User, który składa się z takich pól jak name, middlename, surname, sex oraz birthday. Oczywiście trzeba także dopisać jakaś walidację tego modelu. Wówczas nasz model będzie wyglądać następująco:
-
class User < ActiveRecord::Base
-
-
validates_presence_of :name, :middlename, :surname, :sex, :birthday
-
-
end
Zakładam, że jestem uczciwy względem siebie i chce przetestować, czy walidacje działają poprawnie. Zaczynam więc pisać test:
-
class UserTest <Test::Unit::TestCase
-
fixtures :users
-
-
def test_validation_name
-
u = users('user1')
-
-
u.name = ''
-
assert !u.valid?
-
assert u.errors.invalid?("name")
-
-
u.name = nil
-
assert !u.valid?
-
assert u.errors.invalid?("name")
-
-
end
-
-
# ...i tak dalej... nudny w sumie kod....
-
end
Ale przecież możemy skorzystać z dynamicznej natury Ruby'iego i wstrzyknąć wygenerowane wcześniej metody. Poniżej widać, jak to zrobić:
czytaj dalej »


Nazywam się Wiktor Gworek i jestem gospodarzem tego bloga.