많은 의견이있는 사용자와 간단한 몽고 이드 데이터 모델에서 최소한 1 개의 주석을 쓸 때 특정 배지를 사용자에게 부여하고 싶습니다.rspec을 사용하여 Mongoid :: Observer를 테스트하는 방법
class CommentBadgeObserver < Mongoid::Observer
observe :comment
def after_create(comment)
CommentBadge.check_conditions_for(comment.user)
end
end
class CommentBadge < Badge
def self.check_conditions_for(user)
if user.comments.size > 1
badge = CommentBadge.create(:title => "Comment badge")
user.award(badge)
end
end
end
user.award 방법 : (?하지만 관찰자가 백그라운드에서 실행되기 때문에 정상 추측)
이def award(badge)
self.badges << badge
self.save
end
다음 테스트가 실패
그래서 나는이 같은 관찰자를 설정이 동작을 확인하는 가장 좋은 방법은 무엇입니까?
위대한 작품입니다! 스티브, 고마워! – obo
잘 알고 감사드립니다. 레일즈에서 작업을하고 관찰자 인스턴스화 또는 다른 것입니까? – Steve
네, 제 신청서에서 일 했어요. 옵저버 인스턴스화의 두 줄을 스펙 파일에 설정해야했습니다. – obo