2010-06-24 7 views
0

는 내가 테스트를 필요로하는 그 안에 반복이 아닌 미리 정의 된 번호로 시간이 많이 걸리는 방법이있다. 하나의 반복으로 만이 방법을 테스트하는 것이 가장 좋은 방법은 무엇입니까?파이썬/장고 유닛 테스트 기능 재정의

답변

2

아마도 그런 다음 테스트에서 사용자 정의 OBJS 매개 변수를 호출 할 수 있습니다

def my_method(self, objs=None): 
    if objs is None: 
     objs = get_objects() 
    for obj in objs: 
     do_something(obj) 

에 당신의 방법을 설정합니다.

+0

감사합니다. 나는 이것을 시도 할 것이다 – dragoon

2

는 업데이트 : 전화 개체가 하나의 개체를 반환받을

람다 아웃 :

는 그래서 여기에 내가 소스 코드를 변경하지 않고 문제를 해결할 방법은, 원래의 질문을 오해. 예 :

from your_module import get_objects 

def test_testmethdod(self): 
    original_get_objects = get_objects 
    one_object = YourObject() 
    get_objects = lambda : [one_object,] 

    # ... 
    # your tests here 
    # ... 

    # Reset the original function, so it doesn't mess up other tests 
    get_objects = original_get_objects 
+0

그러나이 예제가 테스트 케이스에서 사용될 때뿐만 아니라 예제 브레이크도 항상 실행될 것이다. – dragoon

+0

죄송합니다. 원래 질문을 잘못 읽었습니다. 소스를 변경하지 않아도되는 솔루션으로 내 대답을 업데이트했습니다. – sdolan

+0

좋아, 나는 당신의 해결책을 이해한다, 나는 또한 다른 시험에서 그것을 사용한다. 그러나이 경우에 나는 Alex의 기술을 사용하고, 어쨌든 투표를 할 것이다. – dragoon