2011-02-02 3 views
3

C++의 보편적 인 단위 테스트 프레임 워크를 QTest of Qtest와 비교할 수 있습니까?QTest와 다른 프레임 워크 비교하기

(CppUnit을, 부스트 테스트, 구글 테스트 등)

는 장점의 단점은 무엇입니까? 감사합니다.

참고 : GUI 테스트는 우리에게별로 중요하지 않습니다.

답변

3

QTest는 UI 구성 요소를 테스트하는 데 필요한 유일한 프레임 워크입니다. 우리는 몇 가지 성공을 거두었지만 Boost.Test를 사용하여 정기적 인 테스트를 실시했습니다.

0

QtTest (최대 Qt 5.7)는 uut에서 어설 션을 기대할 수있는 기능을 제공하지 않지만 Googletest는 죽음 테스트 개념을 가지고 있으며 어설 션을 테스트하는 테스트를 가질 수 있습니다. Google은 Googletest에서이 기능이 유용하다는 것을 알게되고 QtTest에서 누락되었습니다.

0

내 경험에 비추어 볼 때 Qt 테스트 프레임 워크를 추천 할 수 없습니다. (Qt를에만 유용) 방출 된 신호를 확인하기 위해, 그러나 이것은

  • 쉬운 파라미터 화 테스트
  • 를 쓰는 다른 테스트 프레임 워크를 사용할 수도있다 :

    • QSignalSpy : 언급 될 수있는 두 가지 가능한 장점이있다

    주요 단점 :

  • 설비는 기본적으로 지원되지 않습니다
      , 당신은 설정의 tearDown에서 그것을 해결해야
    • QCOMPARE는 다른 유형의 값을 비교할 수 없습니다. 예를 들어 서로 다른 두 비율을 비교하는 것은 불가능하지만, 똑같이 비교할 수는 있습니다. 그냥 캐스팅하는 것이 매우 성가시다. QCOMPARE

    부스트는 간단하고 유용하며, 대부분의 경우에 훌륭하게 작동한다.

    Google 테스트 프레임 워크의 주요 이점은 조롱 지원입니다. 그러나이 기능은 다른 프레임 워크에도 사용할 수 있습니다. 예상되는 호출 순서, 사용자 지정 matchers 정의, 어설 션은 사람이 읽을 수있는 것과 같은 많은 훌륭한 기능을 가지고 있습니다. 그러나 이러한 기능에 익숙해 지려면 시간이 필요합니다 (필요한 경우).

    나는 하나 더 많은 프레임 워크를 언급하고자한다 : Catch. 헤더 단 하나의 프레임 워크이며 어설 션이 거의 없습니다. 예 : REQUIRE(a == b)이 작동하고 ab의 값은 실패시 해결됩니다. Fixture 클래스 나 보일러 플레이트가 필요 없으며, 테스트 케이스에서 섹션을 정의 할 수 있으며, 섹션이 다른 N 번 수행됩니다. 그것은 매우 직설적이며 사람이 읽을 수 있습니다. 다른면에서는 기본적으로 컴파일하는 데 시간이 걸립니다.