2011-03-09 5 views
16

저는 레일과 함께 shoulda-matchers를 사용하고 있으며 "comments"라는 모델과 "post"라는 다른 모델을 만들고 있습니다. 댓글은 다형성입니다.다형성 (polymorphic) 애 스틱을 테스트하기 위해 shoulda matchers를 사용하는 방법은 무엇입니까?

나는이

it {should have_many(:comments)} 

같은 게시물에 했어야 매처 (matcher)로 테스트 할 때 그것은 has_many 협회라는 의견을 (외국 post_id를이없는 코멘트가이 메시지

예상 포스트를 얻을 수 키)

내 의견 모델에는

01이 있습니다.
belongs_to :commentable, :polymorphic => true 

게시물이 많은 댓글을 가질 수 있도록 내 polymorphic 연관을 테스트하려면 어떻게해야합니까?

p.s. shoulda matcher 문서는 그것이 다형성 연관을 지원한다고 말했다.

+0

게시 모델에는 어떤 것이 있습니까? –

+0

나는 이것이 오래된 질문이지만 해결책이 게시 된 적이 없다는 것을 알고 있습니다. 나는 같은 질문을했다. (http://stackoverflow.com/questions/18405058) 해결책은 테스트 데이터베이스 (doh!)에서 마이 그 레이션을 실행하는 것이었다. – brad

답변

8

should에 대한 테스트에서 특별한 작업을 수행하지 않아도됩니다. 레일을 보장

has_many :comments, :as => :commentable 

post_id보다는 적절한 열 이름 commentable_idcommentable_type를 사용하여 귀하의 게시물 모델에 당신이 :as 옵션을 설정해야합니다 확인합니다.

관련 문제