2009-08-16 2 views
0

나는 사양과 스텁을 사용하여 어디에서나 사양을 빠르게 유지할 수 있습니다. 나는 종류의 I는 다음의 find_special 방법을 테스트하기 위해이 작업을 수행하는 방법에로 난처한 상황에 빠진 해요 :최소한의 DB 오버 헤드로 레일에서 연결 확장 논리를 테스트하는 방법

has_many :foos do 
    def find_special 
     if proxy_owner.baz 
     ... find stuff 
     else 
     ... find other stuff 
     end 
    end 
    end 

내가 사용 상관 없어이 연장 => 모듈 구문을,하지만 난 돈 '을 차이가 있다고 생각하지 마십시오.

답변

1

proxy_owner에서 방법을 스텁하는 방법을 묻는 질문이 있으십니까? 이 경우에는 foos을 호출하는 대상이 아닙니까?

# in Mocha 
item.stubs(:baz).returns(true) 
item.foos.find_special # => find stuff 
item.stubs(:baz).returns(false) 
item.foos.find_special # => find other stuff 

안된하지만 어쩌면 당신이 가까이됩니다.

+0

하지만이 테스트를 수행하기 전에 Foo 개체를 여러 개 만들어 데이터베이스에 저장해야합니다. find_special 메서드가 실제로 데이터베이스에 대해 쿼리를 실행하지 않아도 Foo.find가 올바른 매개 변수로 호출되도록 테스트 할 수있는 방법을 찾고 있습니다. –

+0

짧은 버전 : 공장/고정 장치로 이것을 테스트하는 방법을 알고 있습니다. - 내가 없이도 할 수 있는지 알고 싶습니다. –

+0

Item.new 및 item.foos.build와 같이 메모리에 항목 및 양식을 작성할 수 있습니다. 데이터베이스를 만질 필요가 없습니다. – ryanb

관련 문제