2010-08-09 102 views
7

我應該爲我的關聯編寫單元測試嗎?Rails單元測試協會

我還沒有找到很多有關如何以及是否進行測試的優秀資源。我也看到/聽到一些意見,可以不測試你的關聯(belongs_to和has_many),因爲它們已經在rails中測試過了。還有另外一種觀點認爲,如果它是你編寫的代碼,那麼你測試的代碼是

所以,如果你說我應該,請告訴我幾個很好的方法來做到這一點。 目前,我正在使用Test :: Unit編寫測試,而我沒有使用Shoulda(我沒有任何宏)。所以爲了測試每個關聯,我創建了一堆對象,然後對它們進行斷言。有點像這樣 -

對於模型的has_many評論,我測試的邏輯是這樣 -

p = Post.create(:title => 'dummy_title', :content => 'lorem ...')
3.times{ Comment.create(:post_id :=> p.id, :commentor => 'jack')}
assert_equal(3, p.comments.size, "post doesn't have correct no of comments")

+0

我通常只做1或2個測試來驗證那裏實際上是否有關聯。我相信,如果這種關聯存在,它就會起作用。 (當然,如果您有任何關聯,您需要測試關聯中的特定選項) – alternative 2010-08-09 15:25:02

回答

12

對我來說,測試在測試語言協會的邊界(或這種情況下,測試框架)。

我會保留它的情況下,你正在做一些非標準的協會。例如,如果您每次創建評論時都會更改父帖子中的某些內容,請對其進行測試。