Oggi mi è stato chiesto di diagnosticare un problema in qualche codice di sviluppo. Si è scoperto che il problema era causato da una nuova implementazione stub che restituiva dati casuali che non corrispondevano alle specifiche del servizio.
Ciò ha portato a una conversazione con altri per quanto riguarda l'approccio corretto per affrontare questo scenario e una serie di punti di vista diversi e sono curioso di sapere cosa direbbero gli altri.
I documenti delle specifiche del servizio affermano che per questo campo non restituiremo nulla, 'A' o 'D'. (Optional / string (1))
Lo stub era stato configurato a quel punto per restituire un valore di '8whMJiAIIg', che corrispondeva alla definizione WSDL (stringa).
Usiamo un modello che espone un oggetto di risposta (wcf / .NET) che viene popolato dalla risposta del servizio / stub (tradotto di conseguenza) e l'implementazione di questo è stata scritta secondo le specifiche del servizio e stava verificando la esistenza di A o D o non restituire nulla.
In definitiva, poiché il valore non era A o D che doveva essere in questo scenario, il codice non restituiva alcuni dati aggiuntivi e causava un'eccezione più avanti nel flusso.
La conversazione è passata alla codifica difensiva ed è qui che siamo divisi.
Quindi la mia domanda è questa;
Dovremmo fare affidamento sull'implementazione / stub del servizio per restituire i dati secondo le specifiche (questo è considerato un servizio interno, attendibile) o dovremmo sempre inserire il codice per confermare che i dati inviati sono effettivamente come per il servizio spec.