Ho due classi che condividono esattamente la stessa API e funzionalità (stanno avvolgendo API di terze parti diverse per fornire la stessa funzionalità). Le due classi fanno non hanno un'interfaccia/classe di base comune.Ripetere un test dell'unità Boost con diverso tipo di classe
Ho un test dell'unità di boost per uno di loro e vorrei eseguire gli stessi test esatti dall'altro, ma al momento so solo come copiare e incollare il test e trovare/sostituire il nome della classe. Oltre ad essere noioso dover aggiornare i test in due punti, significa anche che non vi è alcuna garanzia che le due classi vengano testate in modo identico.
C'è un modo per 'modello' di prova? In caso contrario, come risolverebbe questo? Tutto quello che viene in mente finora è qualcosa di simile (scusate il pseudo codice):
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>();
}
Ma io non so nemmeno se questo dovrebbe funzionare.