rspec에서 find_each 호출을 테스트하는 방법이 궁금합니다.레일에서 rspec 테스트를 위해 find_each를 스터필 할 수 있습니까?
: 다른 클래스에서 나는이 일을 해요,MyClass.stub(:find).and_return(my_mock)
그러나 : 나는 단순히 내 모델 그래서 나는이 같은 DB에 테스트 데이터에 의존하지 않는 반환 할 것을 스텁 사용 해요 사양 시험에서
MyClass.stub(:find_each).and_return([one_mock, two_mock])
은 "여기 물건을 할"부분이 실행되지 않는 :
MyClass.find_each do |instance_of_my_class|
do_stuff_here_on(instance_of_my_class)
end
은 내가 이렇게하면 것을 찾을 수 있습니다. 누구든지 rspec 테스트를 위해 find_each를 스텁하는 방법을 알고 있습니까?
이렇게하면 다음 오류가 발생합니다. 1의 진리를 가지고 블록하라. mock을 배열로 전달하면 문제가 없지만 find_each 블록의 instance_of_my_class는 배열이고 그 안에있는 요소는 아니다. – Aaron
'.and_yield (one_mock) .and_yield (two_mock) '는 어떻습니까? – zetetic
당신은 꽤 옳습니다, zetetic - 나는 다음 번에 내 충고를 테스트 할 것입니다 :) 당신의 교정 내용을 포함하도록 제 대답을 편집했습니다. – Iain