2010-01-05 10 views
1

부스트 테스트 및 단위 테스트를 새 응용 프로그램으로 일반적으로 수행하고 응용 프로그램 초기화 처리 방법을 잘 모릅니다 (예 : 구성 파일로드, 데이터베이스 연결, 임베디드 파이썬 해석기 시작하기 등).부스트 테스트 응용 프로그램 초기화

이 초기화 프로세스를 테스트하고 응용 프로그램의 다른 모듈 대부분에서 초기화가 성공적으로 수행되어야합니다.

일부 종료 코드를 실행하는 방법 중 일부는 감사하겠습니다.

어떻게해야합니까?

답변

2

당신이하고자하는 것은 단위 테스트보다 통합 테스트입니다. 말씨를 정확히 말하면 안되지만 차이가 있습니다. 단위 테스트는 평균적으로 테스트 방법 을 의미합니다., 조명기라는 환경에서 하나의 테스트 용으로 생성 된 후 삭제됩니다. 다음 조명에 동일한 조명기가 필요한 경우 조명기의 다른 인스턴스가 다시 생성됩니다. 이는 한 테스트의 오류가 후속 테스트의 결과에 영향을주지 않도록 테스트를 격리하기 위해 수행됩니다. 아마도 테스트 할 클래스를 인스턴스화,

  • 법을 필요로 다른 객체 - 전화
  • 어설를 테스트 할 수있는 방법 - 고정 장치를 준비

      정렬
    • :

      일반적으로 하나 개의 테스트는 세 가지 단계가 있습니다 - 기대를 확인하십시오.

    일반적으로 단위 테스트는 파일 및 데이터베이스와 같은 외부 리소스를 사용하지 않습니다. 대신 mock objects은 테스트 할 클래스의 종속성을 충족시키는 데 사용됩니다.

    그러나 응용 프로그램의 유형에 따라 응용 프로그램 자체에서 테스트를 실행할 수 있습니다. 이것은 "순수한"단위 테스트는 아니지만 어쨌든 가치있을 수 있습니다. 특히 단위 테스트를 염두에두고 코드를 작성하지 않은 경우, 단위 테스트를 수행하는 데 "유연성"이 부족할 수 있습니다.

    응용 프로그램을 정상적으로 초기화하고 입력을 시뮬레이트하는 테스트를 호출하고 응용 프로그램이 예상대로 반응하는지 확인하기 위해 어설 션을 사용하는 "-test"매개 변수와 함께 특수 실행 모드가 필요합니다. 마찬가지로 종료 코드를 호출하고 데이터베이스 연결이 닫혀있는 경우 (객체가 삭제되지 않은 경우) 어설 션으로 확인할 수 있습니다.

    이 접근법은 단위 테스트에 비해 몇 가지 단점이 있습니다. 구성 파일 (소프트웨어는 매개 변수에 따라 다르게 작동 할 수 있음), 데이터베이스 (내용 및 연결 기능), 테스트는 격리되지 않습니다 ... 두 번째는 먼저 테스트 모드에서 구성에 대한 기본값과 테스트 데이터베이스에 연결하여 극복 할 수 있습니다.

  • 0

    BOOST_TEST_MAIN을 정의 하시겠습니까? 그렇다면 main 자신의 함수 (초기화 코드를 넣을 곳)가 없다면 필요한 경우 각 테스트 전에 호출 할 수있는 init 함수를 노출하는 싱글 톤 객체의 형태를 사용할 수 있습니다.

    관련 문제