GTest TYPED Test

#include <gtest/gtest.h>

template< typename Type >
class MyTestFixture : public ::testing::Test
{};

TYPED_TEST_SUITE_P( MyTestFixture );

TYPED_TEST_P( MyTestFixture, Case1 )
{
  TypeParam ...;
  ...
}

TYPED_TEST_P( MyTestFixture, Case2 )
{
  TypeParam ...;
  ...
}

REGISTER_TYPED_TEST_SUITE_P( MyTestFixture, Case1, Case2 );

typedef ::testing::Types< ClassA, ClassB > TestTypes;
INSTANTIATE_TYPED_TEST_SUITE_P( MyTest, MyTestFixture, TestTypes);