2013-10-10 7 views
2

최근에 장고와 함께 일하기 시작했습니다. 나는 완전히 새로운데, 장고를 배우는 동안 연습 프로젝트를 진행하고있었습니다.Mock을 사용하여 Django에서 Twitter API를 테스트하는 방법

사용자가 검색 창에 구문이나 단어를 입력하도록 요청하고 상태 메시지에 해당 단어가 포함 된 트위터로부터 50 개의 결과를 반환합니다. 코드가 제대로 작동하고 일부 단위 테스트를 완료했습니다. 이제 저는 사용하고있는 트위터 API (Twython)를 테스트하고 싶었습니다. 모의 또는 패치를 사용하여이를 수행 할 수 있다고 생각했지만 어떻게해야하는지 이해할 수 없었습니다. 나는 조롱에 관한 몇 가지 문서를 읽었지만 잘 이해하지 못했습니다.

가 가 가
searches = [] 
query = "" 
if request.method == "POST": 
    twitter = Twython(APP_KEY, APP_SECRET, OAUTH_TOKEN, OAUTH_TOKEN_SECRET) 
    query = request.POST.get('q', '') 
    search_results = twitter.search(q=query, count=50) 

    for tweet in search_results['statuses']: 
     tweets = "Date : %s,\n Tweet : %s" % (tweet['created_at'], tweet['text']) 
     searches.append(tweets) 

return render(request, "search.html", { 
    "results": searches, 
    "query1": query 
}) 
가 가

누군가가 내가 사용이 줄을 테스트 할 수있는 방법을 제안 해주십시오 수 모의 :

search_results = twitter.search(q=query, count=50) 

답변

1

그것은 소리가 여기

데프 검색 내 코드의 조각 (요청)입니다 "Twython 패치를 적용하여 twitter.search(...)에 지정한 목록을 반환하거나 그 목록이 무엇인지 확인하는 방법"을 묻는 것처럼?

그런 경우라면 모의 테스트를 통해 Twython 클래스를 테스트 해본 다음 그에 대한 주장을 할 수 있습니다. 다음과 같음 :

with patch("yourapp.views.view_module.Twython") as twython_mock: 
    twython_mock.return_value.search.return_value = {} # What you want to set the search call to return 
    # Call your view function 

twython_mock.assert_called_with(...) # If you want to check what was called in line 4 
twython_mock.return_value.search.assert_called_with(...) # If you want to check what q and count are 
+0

감사합니다. Dan 씨, 감사드립니다. 너무 감사드립니다. – Arpit

관련 문제