Non esiste un'unica risposta alla tua domanda. Ci sono tantissime cose che puoi testare della tua funzione e quindi numerosi test possibili. In generale ti consiglio di scrivere i tuoi test come semplici funzioni che restituiscono un valore booleano (o intero) a seconda che il test sia positivo o negativo. Puoi quindi richiamare questa funzione nel tuo main e verificarne il risultato. Alcuni esempi di test che puoi fare per la tua funzione sono:
1. Inserire un singolo elemento in una lista vuota e verificare che ci sia un singolo elemento uguale a quello dato.
2. Inserire un elemento in una lista ordinata e verificare che sia finito nella posizione corretta.
3. Generare una lista di numeri casuali e verificare che siano ordinati.
4. Generare una lista di numeri casuali e verificare che gli elementi inseriti siano effettivamente quelli in input.
5. Inserire un certo numero di valori e verificare che la lista abbia la lunghezza desiderata
6. ..
Un esempio di un main di questo tipo potrebbe essere il seguente:
- Codice:
struct TestInfo {
const char *name;
int (*test_func)();
};
struct TestInfo tests[] =
{ { "Inserimento in lista vuota", test_lista_vuota},
{ "Inserimento valori casuali", test_inserimento_casuali} };
int test_number = sizeof(tests)/sizeof(tests[0]);
int main()
{
int failed = 0;
for (int i = 0; i < test_number; ++i) {
if (!tests[i].test_func()) {
printf("FAILED TEST: %s.\n", tests[i].name);
++failed;
}
}
if (!failed) {
puts("All tests has succeded");
}
return 0;
}