2013-10-10 5 views
2

나는 레일 테스트를하기에 새로운데, shoulda를 사용해 보았지만 어떤 모델을 넣었는지 깨 트려서 수동으로 테스트해야한다고 생각했습니다.tests :: unit과 belongs_to, has_one 또는 has_many 연관을 테스트하려면 어떻게해야합니까?

는 어떻게 모델이 다른 모델과 연결되어 있는지 테스트하는 시험 :: 장치를 사용할 수 있습니다

그래서 SO의 당신 오 위대한 전문가에게 내 질문이 무엇입니까?

+0

지금까지 무엇을 가지고 있습니까? – phoet

답변

4

아니라, 가장 확실한 해결책이 같은 것입니다 :

user = User.create(name: 'User') 
2.times { user.friends.create(name: 'Other User') } 

assert_equal(2, user.friends.count, "Unexpected associated records count") 

을하지만 더 레일 자체를 테스트처럼 기본적으로, 당신은 신경 쓰지한다.

나는 단지 user.respond_to?(:friends)인지 확인합니다. 그러나 누군가가 그 이름을 가진 메소드를 정의하면 실패합니다.

+0

이것은 충분히 잘 작동하는 것 같습니다. 누군가가 메소드 이름을 친구로 만든다면 우리는 단지 그것을 바꿀 것입니다. 감사! – benbot

+0

첫 번째 방법은 "has_many"연결을 테스트하는 유일한 방법일까요? – benbot

+0

나는 그것을 이해했다. 나는 그것이에 반응하는지 검사 할 수있다 : 새로운 – benbot

관련 문제