2016-08-02 9 views
0

힌트를 얻은 상태에서 픽스쳐 (설정 및 분해) 용 무료 기능은 어떻게 사용합니까? flexible models? 문서는 예제를 보여주지 않으며 라이브러리 테스트는이 시나리오를 사용하지 않습니다. 나는 테스트 스위트에 대한 예제를 찾고있다.무료 기능을 사용하는 부스트 유닛 테스트 프레임 워크 픽스

+0

"hints"[where] (http://www.boost.org/libs/test/doc/html/boost_test/utf_reference/test_org_reference/decorator_fixture.html)와 연결된 페이지는 다음과 같은 완벽한 예를 찾을 수 있습니다. 이러한 모델을 사용하는 테스트 모듈. – llonesmiz

+0

그래, 나는 그 예를 보았다. (우리가 똑같은 것을 말하고있다.) 그러나 무료 함수를 사용하여 suite가 아닌 테스트 케이스에 사용되는 조명기를 만든다. 그러나 소스 코드를 읽은 후에도 테스트 스위트에서 작동하는 것으로 보입니다. 그래도 내 질문에 답을 추가하는 것이 정직한 지 확실하지 않습니다. – Engineerist

+0

문제에 대한 해결책을 발견 한 경우, 특히 향후 독자를 도울 수있는 경우 자신의 질문에 완벽하게 답변 (및 권장)됩니다. – llonesmiz

답변

1

FWIW, 이것은 나를 위해 작동 :

#define BOOST_TEST_MODULE foo 

#include <boost/test/included/unit_test.hpp> 
namespace utf = boost::unit_test; 

void setup() { BOOST_TEST_MESSAGE("set up fun"); } 
void teardown() { BOOST_TEST_MESSAGE("tear down fun"); } 

BOOST_AUTO_TEST_SUITE(bar, *utf::fixture (&setup, &teardown)) 

BOOST_AUTO_TEST_CASE(test1) { 
    BOOST_TEST_MESSAGE("running test1"); 
    BOOST_TEST(true); 
} 

BOOST_AUTO_TEST_CASE(test2) { 
    BOOST_TEST_MESSAGE("running test2"); 
    BOOST_TEST(true); 
} 

BOOST_AUTO_TEST_SUITE_END() 

실행 :

$ clang++ -I/usr/local/include test.cpp && ./a.out --log_level=all 
Running 2 test cases... 
Entering test module "foo" 
test.cpp:9: Entering test suite "bar" 
set up fun 
test.cpp:11: Entering test case "test1" 
running test1 
test.cpp:13: info: check true has passed 
test.cpp:11: Leaving test case "test1"; testing time: 56us 
test.cpp:16: Entering test case "test2" 
running test2 
test.cpp:18: info: check true has passed 
test.cpp:16: Leaving test case "test2"; testing time: 36us 
tear down fun 
test.cpp:9: Leaving test suite "bar"; testing time: 148us 
Leaving test module "foo"; testing time: 244us 
... 

공지 사항 설정에 대한 호출 스위트를 실행하기 전에 그리고 마지막에 분해 할 수있는 전화.