Con Google test voglio specificare un dispositivo di prova da utilizzare in diversi casi di test. L'apparecchiatura deve assegnare e deallocare oggetti della classe TheClass
e la sua classe di gestione dei dati TheClassData
, dove la classe di gestione dei dati richiede il nome di un file di dati.
Per i diversi test, il nome del file dovrebbe variare.Specificare gli argomenti del costruttore per un dispositivo di prova Google
ho definito il seguente apparecchio:
class TheClassTest : public ::testing::Test {
protected:
TheClassTest(std::string filename) : datafile(filename) {}
virtual ~TheClassTest() {}
virtual void SetUp() {
data = new TheClassData(datafile);
tc = new TheClass(data);
}
virtual void TearDown() {
delete tc;
delete data;
}
std::string datafile;
TheClassData* data;
TheClass* tc;
};
Ora, diverse prove dovrebbero usare l'apparecchio con i nomi di file differenti. Immagina questo come impostazione di un ambiente di test.
La domanda: Come specificare il nome file da un test, ad esempio chiamare un costruttore non predefinito di un proiettore?
Ho trovato cose come ::testing::TestWithParam<T>
e TEST_P
, che non aiuta, poiché non voglio eseguire un test con valori diversi, ma test diversi con un faro.
Quindi vuoi gestire quel dispositivo da solo? Il test runner di test di google non può creare un'istanza di fixture con parametri. –
Voglio eseguire un test (probabilmente 'TEST_F') usando l'apparecchio. Quindi la risposta è che non è possibile? Grazie. – Gregor
Penso che 'TestWithParam' e 'TEST_P' sia esattamente ciò di cui hai bisogno. Cerca i [Documenti avanzati] (https://github.com/google/googletest/blob/master/googletest/docs/AdvancedGuide.md) come utilizzarli nella pratica. Puoi sempre istanziare l'istanza sotto test (presumo che sia 'TheClass') all'interno del testcase. –