全く同じAPIと機能を共有する2つのクラスがあります(同じ機能を提供するために異なるサードパーティAPIをラッピングしています)。 2つのクラスはではありません。には共通のベースクラス/インターフェイスがあります。異なるクラスタイプのBoostユニットテストを繰り返してください
私はそれらのいずれかのブーストユニットテストをしていますが、他のテストで同じ正確なテストをしたいのですが、今はテストをコピーして貼り付け、クラス名を見つける/置き換えるしかありません。 2つの場所でテストを更新することを迷惑にするだけでなく、2つのクラスが同じようにテストされているという保証もありません。
テストケースを「テンプレート化」する方法はありますか?そうでない場合、どうすればこの問題を解決できますか?私がこれまで考えることのできるものは、疑似コードのようなものです:
template<class T>
void runTests()
{
T t;
//do tests here
}
BOOST_AUTO_TEST_CASE(test_X)
{
runTests<X>();
}
BOOST_AUTO_TEST_CASE(test_Y)
{
runTests<Y>();
}
しかし、これが機能するかどうかわかりません。