파이썬 모의 사용

개념 .Mock

이름이 라이브러리의 주요 기능은 무엇인가를 시뮬레이션하는 것입니다 있듯이 unittest.mock 파이썬에서 단위 테스트를위한 라이브러리, 모의, 아날로그 수단을 변환합니다.
주요 기능은 지정된 파이썬 객체에서 mock 객체의 사용을 대체 목적을 달성하기 위해 동작을 시뮬레이션하는 것입니다.

이 .Mock의 역할

당신은 1. 인터페이스 자동화를 작성하고, 인터페이스가 사용 A B 인터페이스를 필요에 다음 다음 모의을 사용할 수 있습니다, 그 결과를 반환하는 경우.

다른 사람을 시간의 인터페이스 자동화를 만드는 타사 인터페이스에 의존 2. 때때로 타사 인터페이스를 호출해야하지만 통제 할 수없는 다른 사람의 인터페이스 서비스는 다른 사람이 운전하는 오늘날의 환경에 테스트 서비스를 제공있을 수 있습니다 꺼져
많은 문제를 테스트 자동화 인터페이스에, 당신은 반환 데이터를 시뮬레이션하기 위해 자신의 모의 서버 인터페이스를 작성할 수 있습니다.

세 .Mock 가져 오기

유닛 테스트 프레임 워크 내부에 넣어 한 후 py3.0에서 모의하는 것은, 그래서 라인에 유닛 테스트에 수입 모의에서 직접

IV. 프레젠테이션의 예로

 mock_data.py

. (1)  DEF 레지스터 () :
 2      '' ' 가정 불완전 개발 등록 함수 인
 세 가지      상태를'1 : {성공적인 등록 복귀 ' '부호 ':'10001 ','데이터 '없음'MSG ' } "등록 성공"
 4      등록 반환 실패 : { '상태'0 '코드': '20110', '데이터'없음 'MSG': ' 전화 번호가 이미 등록'}
 . 5      '' ' 
. 6      패스 
. 7  DEF register_statues ()
 . 8      '' 판정 등록 성공 '' 
. (9)      결과 = 레지스터 ()
 10      출력 (결과)
 . (11)      만약에 결과 [ " 코드 "] == " 10001 " :
 12          반환 " 등록 성공 " 
13      ELIF 결과를 [ " 코드 " ] == " 20110 " :
 14          반환  " 전화 번호가 등록되고 ," 
15      를 다른 :
 16          반환  " 알 수없는 오류 예외 ."

test_demo.py

. (1)  로부터 유닛 테스트 오기 모의
 2  오기 유닛 테스트
 3.  에서   test_case_demo 오기 mock_data
 4.  
5 개.  클래스 (unittest.TestCase의) Test_Register :
 . 6      '' ' 단위 테스트 ' ' 
7.      DEF의 test_01 (자기)
 . 8          ' ' 테스트 시나리오 등록 성공 ' ' 
9.          # 성공적인 데이터 레지스터 모의 
10          mock_data.register = mock.Mock합니다 (RETURN_VALUE를 = { ' 상태 ' :. 1 ' 코드 ' : '10001 ', ' 데이터 ' : 없음, ' MSG은 ' : ' 성공적으로 등록 ' )}
 11          #은 등록에 따른 결과를 얻을 수 없다 
(12)는          동상 =의 mock_data.register_statues ()
 (13)는          #의 전단 (동상) 
14          self.assertEqual (동상 " 등록이 성공 " )
 15  
16      DEF의 test_02 (자기)
 . (17)          '' ' 테스트 시나리오 등록 실패 ' '' 
(18)은          # 등록 실패의 모의 데이터 
(19).          mock_data.register = mock.Mock합니다 (RETURN_VALUE = { ' 상태 '0, ' 코드 ' : ' 20110 ' , ' 데이터 ' : 없음, ' MSG은 ' : ' 전화 번호가 이미 등록 ' )}
 20          #은 등록에 따른 결과를 얻을 
21          동상 =의 mock_data.register_statues ()
 (22)는          #의 전단 (동상) 
23          self.assertEqual (동상 " 전화 번호가 등록되어있는 " )
 24  
25  IF  __name__ == " __main__ " :
 26      unittest.main ()

결과 :

 

추천

출처www.cnblogs.com/hao2018/p/11412368.html