2010-04-19 5 views
1

UnitTest ++에서 단위 테스트를 작성 중이며 일반적인 리소스를 공유하는 여러 테스트를 작성하려고합니다. 이 TEST_FIXTURE 설치를 통해 작동해야한다고 생각하지만 모든 테스트에 대한 새로운 고정물을 건설하는 것으로 보인다. 샘플 코드 :UnitTest ++는 조명기를 여러 번 구성합니까?

#include <UnitTest++.h> 

struct SomeFixture { 
    SomeFixture() { 
     // this line is hit twice 
    } 
}; 

TEST_FIXTURE(SomeFixture, FirstTest) { 
} 

TEST_FIXTURE(SomeFixture, SecondTest) { 
} 

나는 틀린 일을해야한다고 느낍니다. 조명기를 가지고있는 모든 점이 setup/teardown 코드가 한 번만 발생한다고 생각했습니다. 내가 틀렸어? 그런 식으로 작동시키기 위해해야 ​​할 일이 있습니까?

답변

6

테스트 픽스쳐의 요점은 상태를 공유하는 것이 아니라 모든 테스트에서 동일한 설정/분해 코드를 쓸 필요가 없다는 것입니다. 상태를 공유하려면 테스트에서 정적 필드와 정적 함수가있는 클래스를 간단하게 참조 할 수 있습니다. 그런 다음 TEST_FIXTURE 대신 표준 TEST 매크로를 사용할 수 있습니다.

+0

하! 10 초 남았습니다. +1 : –

+0

그래, 그것이 어떻게 작동해야하는지. 나는 약간의 실망을 인정할 것이다. 나는 TEST_FIXTURE가 나에게 이처럼 유용하다는 것을 보지 못한다. 그러나 나는 그것과 함께 살아야 할 것 같다. 어쨌든 그것을 지워 줘서 고마워. :) – Peter

2

고정 장치가있는의 요점은 설치/해체 코드 만 고정이 모든 테스트를 반복하는기구의 요점은, 아니 한 번

일이 너무이었다. 당신이보고있는 것은 예상되고 올바른 행동입니다.