인터페이스 자동화 프레임 워크 : 유닛 테스트에서 관련 사용 사례를 해결하는 방법

 

유닛 테스트에 수입 
클래스 MYTEST (unittest.TestCase) : 

    데프 __init __ (자기) : 
        self.test_login () 
        self.test_query () 

    데프 test_login (자동) : 
        인쇄 ( 'test_login 자기', 아이디 (자기)) 

    데프 test_query (자체) : 
        인쇄 ( 'test_query 자기', 아이디 (자기)) 

__name__ == '__main__'의 경우 : 
    MYTEST ()

  

결과 : 지시 test_login과 자기의 test_query은 동일합니다

test_login 자기 : 13940664 
test_query 자기 : 13940664

  

상속 unittest.TestCase

유닛 테스트에 수입 
: 클래스 (unittest.TestCase) MYTEST 

    데프 설정 (자동) : 
        인쇄 ( '설정 자체', 아이디 (자기)) 

    DEF 형 분석 (자기) : 
        인쇄 ( '해체 자기', 아이디 (자기)) 

    고화질 test_login (자기) 
        인쇄 ( 'test_login 자체', ID (자체)) 

    데프 test_query (자기) 
        인쇄 ( 'test_query 자체', ID (자체)) 

경우 __name__ == '__main__' 
    unittest.main ()

  

실행 결과 : 자기 test_query의 test_login의 설명과도 같은 클래스에서, 동일하지 않습니다

설정 자체 : 17905872 
test_login 자기 : 17905872 
해체 자기 : 17905872 
설치자가 : 17905648 
test_query 자기 : 17905648 
해체 자기 : 17905648

  

여기에 가지 마세요 위의 결과의 차이에 대한 이유, 당신은 관심의 유닛 테스트 소스에서 연구를 갈 수 있습니다.

모든 침구보다도, 우리가 여기에서 고려해야은 그 연관 경우 인터페이스 자동화 된 테스트 프레임 워크?

예를 들어, 우리는 토큰 로그인을 얻기 위해 통과해야합니다 모든 후속 요청을 기록하는 시스템이 필요합니다

에서 유닛 테스트 때문에,이 같은 클래스는 경우에도 각자가 사용 사례가 다른 사용 사례가 간단하지 않기 때문에 물론, 사용 사례가, 자기 설정 속성으로 self.token = xxx라고 로그인 할 수없는, 동일하지 않습니다

유닛 테스트에 수입 
: 클래스 (unittest.TestCase) MYTEST 

    데프 설정 (자동) : 
        인쇄 ( '설정 자체', 아이디 (자기)) 

    DEF 형 분석 (자기) : 
        인쇄 ( '해체 자기', 아이디 (자기)) 

    고화질 test_login (자동) : 
        인쇄 ( 'test_login 자기', 아이디 (자기)) 
        self.token = 'https://www.cnblogs.com/uncleyong/p/10530261.html' 

    데프 test_query (자기) : 
        인쇄 ( 'test_query 자기 ', 아이디 (자기)) 
        인쇄 (self.token) 

의 경우 __name__ =='__main__ ': 
    unittest.main ()

  

오류

역 추적 (가장 최근의 호출 마지막) : 
  파일 : test_query에서 "F /uncleyong/test.py", 라인 (16), 
    인쇄 (self.token) 
AttributeError가 'MYTEST'개체가 어떤 속성이없는 '토큰'

  

 

 

계획 I : 방법 종속성을 정의

test_add_b가 test_add_a 의존하는 경우, test_add_a는 add_a에 관해서는, 테스트의 시작 부분에 변경할 수 없습니다, 유닛 테스트는 add_a 실행되지 않습니다,

test_add_b 통화 add_a, 그것은 test_add_b의 일환으로 실행됩니다 add_a, 성공하지 못한 경우이 사용 사례의 실행이 실패 test_add_b add_a에 성공, 그것은, test_add_b 뒤에 코드를 실행하지 여부를 말할 필요가있다.

그러나,이 다소 복잡, 반드시 만 평은 각 클래스 다시 작성해야합니다 있도록이 글로벌 토큰으로 저장 최고에, PY 파일에 반드시 클래스, 유스 케이스가 아닌 파일

유닛 테스트에 수입 
: 클래스 (unittest.TestCase) MYTEST 

    데프 설정 (자동) : 
        인쇄 ( '설정 자체', 아이디 (자기)) 

    DEF 형 분석 (자기) : 
        인쇄 ( '해체 자기', 아이디 (자기)) 

    데프 로그인 (자동) : 
        인쇄 ( 'test_login 자기', 아이디 (자기)) 
        self.token = 'https://www.cnblogs.com/uncleyong/p/10530261.html' 

    데프 test_query (자기) : 
        인쇄 ( 'test_query 자기 ', 아이디 (자기)) 
        self.login () 
        인쇄 (self.token) 

의 경우 __name__ =='__main__ ': 
    unittest.main ()

  

결과

설정 자체 : 17905032 
test_query 자기 : 17905032 
test_login 자기 : 17905032 
https://www.cnblogs.com/uncleyong/p/10530261.html 
해체 자기 : 17905032

  

정적 메서드로 대체, 우리는 반환해야

유닛 테스트에 수입 
: 클래스 (unittest.TestCase) MYTEST 

    데프 설정 (자동) : 
        인쇄 ( '설정 자체', 아이디 (자기)) 

    DEF 형 분석 (자기) : 
        인쇄 ( '해체 자기', 아이디 (자기)) 

    @staticmethod 
    데프 로그인 () : 
        인쇄 ( 'test_login 자체') 
        토큰 = 'https://www.cnblogs.com/uncleyong/p/10530261.html' 
        토큰을 반환 

    데프 test_query (자기) : 
        인쇄 ( 'test_query 자기', ID (자체)) 
        토큰 self.login = () 
        인쇄 (토큰) 


경우 __name__ == '__main__' 
    unittest.main ()

  

결과

설정 자체 : 17905032 
test_query 자기 : 17905032 
test_login 자기 
https://www.cnblogs.com/uncleyong/p/10530261.html 
해체 자기 : 17905032

  

 다른 클래스도 사용할 수있다

유닛 테스트에 수입 
: 클래스 (unittest.TestCase) MYTEST 

    데프 설정 (자동) : 
        인쇄 ( '설정 자체', 아이디 (자기)) 

    DEF 형 분석 (자기) : 
        인쇄 ( '해체 자기', 아이디 (자기)) 

    @staticmethod 
    데프 로그인 () : 
        인쇄 ( 'test_login 자체') 
        토큰 = 'https://www.cnblogs.com/uncleyong/p/10530261.html' 
        토큰을 반환 

    데프 test_query (자기) : 
        인쇄 ( 'test_query 자기', ID (자체)) 
        토큰 = self.login () 
        인쇄 (토큰) 

클래스 MyTest2 (unittest.TestCase) : 

    데프 설정 (자동) : 
        인쇄 ( '설정 자체', 아이디 (자기)) 

    DEF 형 분석 (자기) : 
        인쇄 ( '해체 자기', ID (자체))

    데프 test_delete (자기) 
        인쇄 ( 'test_query 자체', ID (자체)) 
        토큰 = MyTest.login () 
        인쇄 (토큰) 

경우 __name__ == '__main__' 
    unittest.main ()

  

결과

설정 자체 : 17836464 
test_query 자기 : 17836464 
test_login 자기 
https://www.cnblogs.com/uncleyong/p/10530261.html 
해체 자기 : 17836464 
설치자가 : 17835792 
test_query 자기 : 17835792 
test_login 자기 
https://www.cnblogs.com /uncleyong/p/10530261.html 
해체 자기 : 17835792

  

질문 : 지원 동시 사용 사례 및 사용 사례 b는 토큰 로그인을 의존하는 경우, 사용 사례는 토큰에 첫 통화 기록을 얻을 수 있지만, 때문에 네트워크 이유로, 서버에 전송 요청에 연결되지 않았다

이때, 실시 예 B 토큰 (고장 이전에 토큰)을가 얻어진다 유스 케이스 수행 실패 할

통화 로그 다른 로그인 이름을 전달

 

옵션 II : 싱글 인스턴스 변수를 정의

단지 하나의 예를 시험 로그인 시간, 단일 모드 실시 예는,이 예에서 인스턴스 변수를 추가하고, 후속 토큰에 의존 로그 인터페이스는, 인스턴스 변수로부터 직접 얻었다. 

 

옵션 세 : 파일 쓰기

검사 로그, 토큰을 넣고이 파일에 기록 얻을 때, 인터페이스는 토큰 로그인을 따라 따라, 당신은 직접 파일에서 읽을 수 있습니다.

추천

출처www.cnblogs.com/uncleyong/p/11367331.html