- questa è non una domanda su come scrivere test di unità
- questa è non una domanda su cosa testare
- questa è una domanda sulla riduzione della tipizzazione necessaria in generale per un framework di test personale
So che puoi inviare i puntatori di funzione come argomenti alle funzioni in C.
Esiste una versione c ++ 98? Oppure, dato che c ++ può funzionare all'indietro, dovrei semplicemente usare il metodo del puntatore a forma di C?
Sto cercando di scrivere una funzione che testa le funzioni per me. Non voglio scrivere una lunga lista di:
try {
func1()
out << fail
} except e {
out << pass
}
if (func2(arg2) == expected_val) {
out << pass
else
out << fail
try/catch...
try/catch...
if/else...
try/catch...
...etc
ma forse invece:
test_this(func1, passes_on_exception)
test_this(func2, ! passes_on_exception, expected_val2, arg2)
test_this(func3, passes_on_exception)
test_this(func4...
test_this(func5...
...etc
void test_this(func_name, pass_on_exception, expected_value, arg1, ..., argn) {
if pass_on_exception {
try {
func_name(arg1)
out << fail
} catch e {
out << pass
}
} else {
if func_name == expected_value {
out << pass
} else {
out << fail
}
}
}
Le funzioni virtuali sembrano fuori discussione dal momento che, se ricordo correttamente, i nomi delle funzioni devono essere sovrascritti / codificati; come in, avrei bisogno di creare una nuova classe per ereditare e sovrascrivere le funzioni, nel qual caso, vorrei ridichiarare la funzione, e anche ridigitare tutte quelle try / catch ... la catena di try / catch / if / else sembra meglio.
Se ci fosse un modo per passare i nomi delle funzioni ad altre funzioni, penso di poterlo capire da lì. A meno che quanto sopra non sia effettivamente possibile in C ++, per favore fermatemi prima di iniziare, e mi limiterò a sopportare quel lungo elenco di test / catch / if / else. Quindi, domanda principale: c'è un modo per fare quanto sopra? In caso contrario, alternative?