2016-08-07 3 views
2

:부스트 테스트 프레임 워크에서 테스트 케이스를 재사용하는 방법은 무엇입니까? 예를 들어 내가 테스트 케이스 다음 한

#include <MyClass.hpp> 
#define BOOST_TEST_MODULE MyTest 
#include <boost/test/unit_test.hpp> 

BOOST_AUTO_TEST_CASE(my_test) 
{ 
    MyClass o1(42), o2(21); 
    BOOST_CHECK(o1.is_valid()); 
    BOOST_CHECK_EQUAL(o1 == o2 * 2); 
    BOOST_CHECK_EQUAL ... 
    ... 
} 

같은 방법을 구현 한 몇 가지 유사한 클래스가 같은 논리에 의해 그들을 테스트하고자, 테스트 케이스는 다음과 같이 할 수있다 :

BOOST_AUTO_TEST_CASE(my_test1) 
{ 
    MyClass1 o1(42), o2(21); 
    BOOST_CHECK(o1.is_valid()); 
    BOOST_CHECK_EQUAL(o1 == o2 * 2); 
    BOOST_CHECK_EQUAL ... 
    ... 
} 

BOOST_AUTO_TEST_CASE(my_test2) 
{ 
    MyClass2 o1(42), o2(21); 
    BOOST_CHECK(o1.is_valid()); 
    BOOST_CHECK_EQUAL(o1 == o2 * 2); 
    BOOST_CHECK_EQUAL ... 
    ... 
} 

BOOST_AUTO_TEST_CASE(my_test3) 
{ 
    MyClass3 o1(42), o2(21); 
    BOOST_CHECK(o1.is_valid()); 
    BOOST_CHECK_EQUAL(o1 == o2 * 2); 
    BOOST_CHECK_EQUAL ... 
    ... 
} 

... 

테스트 케이스에서 로직을 재사용 할 수있는 방법이 있습니까?

답변

0

template test cases을 확인하십시오.

#include <MyClass.hpp>  
#define BOOST_TEST_MODULE MyTest 
#include <boost/test/included/unit_test.hpp> 
#include <boost/mpl/list.hpp> 

typedef boost::mpl::list<MyClass1,MyClass2,MyClass3> test_types; 

BOOST_AUTO_TEST_CASE_TEMPLATE(my_test, T, test_types) 
{ 
    T o1(42), o2(21); 
    BOOST_CHECK(o1.is_valid()); 
    BOOST_CHECK_EQUAL(o1 == o2 * 2); 
    BOOST_CHECK_EQUAL ... 
    ... 
} 
관련 문제