1

지오 코더 젬으로 각 ActiveRecord 결과에 도입 된 별칭을 스텁하려고합니다. Factory Girl을 사용하여 레코드를 모의하고 있습니다.ActiveRecord 결과 별칭 스터 빙

제 컨트롤러에서 near 메서드를 사용하여 인근 경기장을 찾습니다. 이 모든 괜찮하지만 내보기에 나는 장소로 원점에서 계산 된 거리 가져올 수 있기를 기대하고

let(:origin) { [...] } 
let(:venue) { build(:venue) 

... 

expect(Venue).to receive(:near).with(origin).and_return([venue] * 5) 

:

을 나는 공장 소녀에 의해 만들어진 결과를 near 방법을 조롱하고 반환하고
- @nearest_venues.each do |venue| 
    = "#{venue.name}, #{'%.2f' % venue.distance} miles" 

distance은 공연장 모델에서 구현되지 않았기 때문에 폭발합니다. 처음에는 공장 소녀 특성을 사용하여 거리 속성을 결과에 추가 할 수 있다고 생각했지만 동일한 이유로 실패합니다.

저는 RoR에 상당히 익숙해졌습니다. 그래서 둥근 구멍에 사각형 못을 넣으려고 시도하고 있을지도 모릅니다.

답변

0

앱의 여러 구성 요소를 함께 테스트하는 것이 좋습니다 (Capybara에서 제공 한 통합/수락 수준 테스트에 더 적합 함). 당신이 rspec-rails 문서를 체크 아웃하면 나는 모델 사양 여기에 예를 들어 (유사 당신의 장소 시험에), 당신은 몇 가지 좋은 예를 찾을 수 있습니다 생각 : 여기

http://www.rubydoc.info/gems/rspec-rails/#Model_Specs

또는보기 테스트 :

http://www.rubydoc.info/gems/rspec-rails/#View_specs

테스트 스펙은 렌더링 및 변수 할당과 관련이 있으며, 모델 스펙은 테스트와 비슷한 계산에 집중합니다.

http://www.rubydoc.info/gems/rspec-mocks/

을 물론 당신은 당신의 목표 방법 일반 오래된 루비 클래스를 생성 (distance 등) 두 배 시험, 너무 사용할 수 있습니다

모의 객체와 스텁이 여기에 포함된다.

+1

네가 맞아,이 경우 테스트 문제를 넘나들고있다. 귀하의 회신에 감사드립니다. –