2014-01-18 4 views
3

죄송합니다. 정말 바보 같은 질문이지만 나이를 찾고 있었지만 그 사실을 알 수는 없습니다.Python - unit testing

그래서 단위 테스트와 관련해서는 파이썬에 관한 질문이 아니지만 필자는 파이썬으로 작업하고 있으므로 질문을 토대로 선택했습니다.

나는 단위 테스트에 대한 아이디어를 얻었지만 인터넷에서 찾을 수있는 유일한 것은 매우 간단한 단위 테스트입니다. 메소드 sum (a, b)가 a + b의 합을 리턴하는지 테스트하는 것과 같습니다.

그러나 복잡한 프로그램을 다룰 때 단위 테스트를 어떻게 적용합니까? 예를 들어 크롤러를 작성했습니다. 나는 그것이 무엇을 반환할지 모르겠다. 그렇지 않으면 크롤러가 필요하지 않을 것이다. 그렇다면 크롤러가 메서드가 반환 할 내용을 모른 채 제대로 작동하는지 테스트하려면 어떻게해야합니까?

미리 감사드립니다.

답변

4

전체 크롤러는 아마도 기능적으로 테스트 될 것입니다 (우리가 거기에 도달 할 것입니다). 유닛 테스트의 경우 크롤러를 페이지 구문 분석기, URL 인식기, 가져 오기 도구, 리디렉션 처리기 등과 같은 여러 구성 요소로 작성했을 것입니다. 이들은 귀하의 UNIT입니다. 당신은 단위 테스트를해야한다. 적어도 각각 약간의 복잡한 논리를 가진 사람은 입력을 받아야한다. 기억할 것은 때로는 입출력이 아닌 동작을 테스트 할 것이고, 이것이 모조와 스텁이 유용 할 수있는 곳이라는 것을 기억하십시오.

기능 테스트 - 작성하려는 다른 웹 페이지에 대한 링크가있는 웹 페이지와 같은 일부 테스트 시나리오를 만들어 일부 서버에 설정해야합니다. 그런 다음 생성 한 웹 페이지에서 크롤링을 수행하고 크롤러가 예상대로 작동하는지 확인해야합니다 (예상되는 내용을 알고 있어야합니다. 사용자가 해당 페이지를 만들 것이므로).

또한 때때로 단위 테스트와 기능 테스트 간의 통합 테스트를 수행하는 것이 좋습니다. 일부 구성 요소가 함께 작동하는 경우 (예 : 리디렉션 처리기를 사용하는 fetcher) 예상대로 두 개가 함께 작동하는지 확인하는 것이 좋습니다 (예 : 서버에서 자원을 만들거나 가져온 경우 HTTP 코드가 리디렉션 됨). 예상대로 처리되는지 확인하십시오).

그래서, 결국 :

  • 당신이 간단한 실수

  • 공동 작업 구성 요소에 대한 통합 테스트를 작성하지 않았 있는지 확인하기 위해 앱을 만드는 구성 요소에 대한 단위 테스트를 작성, 당신이 모든 것을 잘 붙인 지 확인하려면

  • 기능 테스트를 작성하여 응용 프로그램이 예상대로 작동하는지 확인하십시오 (일부 오류는 구현이 아닌 프로젝트에서 온 것이므로)

+0

감사합니다. 지금은 훨씬 더 의미가 있습니다! – SergioP

0

단위 테스트는 코드가 주어진 환경에서 예상 한대로 작동하는지 확인합니다. 다른 모든 변수가 예상대로되어 있는지 확인하고 단일 메소드를 테스트해야합니다. 써드 파티 API를 사용하는 메소드를 위해서 그렇게하려면 조롱 라이브러리를 사용하여 조롱해야한다. 조롱하여 원하는 데이터를 제공하고 메서드가 예상대로 작동하는지 확인합니다. 또한 API 요청을하는 부분과 API를 파싱/사용하는 부분이 분리되어 있고 제공 한 특정 API 예제 응답을 사용하여 두 번째 부분을 단위 테스트 할 수 있도록 코드를 분리 할 수 ​​있습니다.