C++의 보편적 인 단위 테스트 프레임 워크를 QTest of Qtest와 비교할 수 있습니까?QTest와 다른 프레임 워크 비교하기
(CppUnit을, 부스트 테스트, 구글 테스트 등)
는 장점의 단점은 무엇입니까? 감사합니다.
참고 : GUI 테스트는 우리에게별로 중요하지 않습니다.
C++의 보편적 인 단위 테스트 프레임 워크를 QTest of Qtest와 비교할 수 있습니까?QTest와 다른 프레임 워크 비교하기
(CppUnit을, 부스트 테스트, 구글 테스트 등)
는 장점의 단점은 무엇입니까? 감사합니다.
참고 : GUI 테스트는 우리에게별로 중요하지 않습니다.
QTest는 UI 구성 요소를 테스트하는 데 필요한 유일한 프레임 워크입니다. 우리는 몇 가지 성공을 거두었지만 Boost.Test를 사용하여 정기적 인 테스트를 실시했습니다.
QtTest (최대 Qt 5.7)는 uut에서 어설 션을 기대할 수있는 기능을 제공하지 않지만 Googletest는 죽음 테스트 개념을 가지고 있으며 어설 션을 테스트하는 테스트를 가질 수 있습니다. Google은 Googletest에서이 기능이 유용하다는 것을 알게되고 QtTest에서 누락되었습니다.
내 경험에 비추어 볼 때 Qt 테스트 프레임 워크를 추천 할 수 없습니다. (Qt를에만 유용) 방출 된 신호를 확인하기 위해, 그러나 이것은
주요 단점 :
QCOMPARE
부스트는 간단하고 유용하며, 대부분의 경우에 훌륭하게 작동한다.
Google 테스트 프레임 워크의 주요 이점은 조롱 지원입니다. 그러나이 기능은 다른 프레임 워크에도 사용할 수 있습니다. 예상되는 호출 순서, 사용자 지정 matchers 정의, 어설 션은 사람이 읽을 수있는 것과 같은 많은 훌륭한 기능을 가지고 있습니다. 그러나 이러한 기능에 익숙해 지려면 시간이 필요합니다 (필요한 경우).
나는 하나 더 많은 프레임 워크를 언급하고자한다 : Catch. 헤더 단 하나의 프레임 워크이며 어설 션이 거의 없습니다. 예 : REQUIRE(a == b)
이 작동하고 a
및 b
의 값은 실패시 해결됩니다. Fixture 클래스 나 보일러 플레이트가 필요 없으며, 테스트 케이스에서 섹션을 정의 할 수 있으며, 섹션이 다른 N 번 수행됩니다. 그것은 매우 직설적이며 사람이 읽을 수 있습니다. 다른면에서는 기본적으로 컴파일하는 데 시간이 걸립니다.