I have a pretty simple model, articles and users.
class Article
belongs_to :user
end
class User
has_many :articles
end
In my unit tests I want to ensure that the associations work properly.
What’s the best way to do this? The obvious thing to do is a test in
each model.
user_test.rb
def test_add_post
u = users(:first)
before_articles = u.articles.count
u.articles << Article.new(:title => “Title”, :body => “Body”)
u.reload
assert_equal before_articles + 1, u.articles.count
end
article_test.rb
def test_create_with_user
a = Article.new(:title => “Title”, :body => “Body”, :user =>
users(:first))
assert a.save
a.reload
assert_equal users(:first), a.user
end
The thing that bugs me is that in my unit test for article I have to
include the users fixtures. As my domain model gets more complicated,
my tests require more fixtures. It just feels messy to me. This is a
pretty basic question, but it’s something that’s bothered me for a
long time throughout several projects…am I justified in thinking
it’s ugly, or is that the correct approach?
Pat