2013-05-31 4 views
2

필자는 Python requests 라이브러리를 사용하는 단위 테스트를하고 싶습니다. 기본적으로, 그들은 같은 일을하고 있습니다 :파이썬 요청 단위 테스트?

def my_method_under_test(self): 
    r = requests.get("https://ec2.amazonaws.com/", params={'Action': 'GetConsoleOutput', 
      'InstanceId': 'i-123456'}) 
    # do other stuffs 

나는 기본적으로

  1. 그것은 실제로 요청을 만들고있다하는지 테스트 할 수 있도록하고 싶습니다.
  2. GET 방법을 사용하고 있습니다.
  3. 올바른 매개 변수를 사용하고 있습니다.

문제는 내가 실제로 너무 오래 걸릴거야, 그리고 일부 작업은 잠재적으로 파괴적으로 요청을하지 않고 테스트 할 수 있도록하고 싶습니다이다.

이것을 어떻게 조속하고 쉽게 테스트 할 수 있습니까?

+1

가능한 중복 http://stackoverflow.com/questions/9559963/unit-testing-a- python-app-that-uses-the-requests-library) –

+0

지난 번에 내가 한 일이 [나쁜 일이 일어났습니다.] (https://www.youtube.com/watch?v=5O17j94YBCg&t=20) –

+1

코드가 요청 라이브러리가 작동하는지 테스트해야합니까? 이는 테스트의 책임이 아니며 Requests의 테스트에서 발생합니다. – thisfred

답변

7

어떻게 간단한 모의에 대한 :

from mock import patch 

from mymodule import my_method_under_test 

class MyTest(TestCase): 

    def test_request_get(self): 
     with patch('requests.get') as patched_get: 
      my_method_under_test() 
      # Ensure patched get was called, called only once and with exactly these params. 
      patched_get.assert_called_once_with("https://ec2.amazonaws.com/", params={'Action': 'GetConsoleOutput', 'InstanceId': 'i-123456'}) 
([요청 라이브러리를 사용하는 파이썬 응용 프로그램을 테스트 단위]의
관련 문제