Ho una grande struttura dati che viene letta da XML. Mi è stata fornita una lunga lista di vincoli che devono essere mantenuti tra i membri dei dati. Ad esempio, uno dei vincoli potrebbe essere simile a
some_complicated_function(data.childOne.fieldTwo.bar) < sqrt(
data.childThree.fieldFive.foo.quux)
La mia migliore idea è di avere test che simulino i dati in un modo che non soddisfa esattamente uno dei vincoli e poi ispezionano i log. Il problema è che tutto è così interconnesso che il tentativo di organizzare le cose in modo esatto in cui un controllo fallisce - o addirittura rintracciare tutti i controlli che dovrebbero fallire nel cambiare un set di dati "pulito" in un certo modo - richiederà un buona dose di trucchi matematici non sono sicuro di esserlo.
Penso che dal momento che non ho strumenti per vedere quale sia l'output di some_complicated_function
dovrebbe essere, sono bloccato guardando il mio codice e lo pseudocodice in il manuale di riferimento in cui è descritta la funzione e assicurandosi che facciano la stessa cosa a mano. Allo stesso modo, dovrò riscrivere la logica del vincolo per testarlo, quindi quei test non mi aiuterebbero davvero a credere che i miei assegni funzionino come dovrebbero.