Sto testando una classe di gestione delle risorse che interagisce con un database o un file system o una combinazione di entrambi. Stavo vagando se è normale testare tutte le possibili permutazioni di leggere e scrivere per tutte le colonne di un set di dati quando è coinvolto un database. Quello che voglio dire è:
Tabella del database del test case:
+----------------------+----------------------+----------------------+----------------------+
| users |
+----------------------+----------------------+----------------------+----------------------+
| user_id | user_name | user_email | user_role |
+----------------------+----------------------+----------------------+----------------------+
| 1 | A New Name | [email protected] | 1 |
+----------------------+----------------------+----------------------+----------------------+
| 2 | A different name | [email protected] | 1 |
+----------------------+----------------------+----------------------+----------------------+
Potevo immaginare qualcosa di diverso che andasse storto nel livello di astrazione, aggiornando il primo record ma nessun altro, aggiornando il secondo record, ma non il quarto, o nessuna altra permutazione o combinazione.
È normale scrivere test per tutti questi scenari (se sto pensando a ciò correttamente sarebbe 4! = 24 casi, giusto)?
Ora, se voglio recuperare le colonne, posso ancora immaginare che qualcosa va storto solo recuperando la prima e la quarta colonna, solo la terza o tutte le possibili permutazioni di quella.
Ora cosa succede se la scrittura e la lettura sono miste, prima una lettura, poi una scrittura e poi una lettura. Forse una scrittura su una colonna, una lettura di tre colonne, poi una lettura di una o qualsiasi altra permutazione. Molto presto ci sono potenzialmente migliaia di casi di test ...
Sto pensando troppo a questo e dovrei solo testare quello che sto realmente incontrando, o è la norma per fare due diligence e testare tutto questo.
Le sto chiedendo perché l'accesso al database sta causando il lancio delle mie suite di test in tempo di esecuzione.
Modifica: Nel caso questo non fosse chiaro, non sto provando a verificare se il database sta facendo quello che dovrebbe essere, ma se il mio livello di astrazione si comporta come previsto.