In caso di un test unitario che coinvolge dati personali, è necessario utilizzare un test di integrazione?

3

Sto cercando di sviluppare una serie di test unitari per un sistema di produzione che dipendono dal numero di sicurezza sociale di una persona. Mentre sono più che a mio agio nel codificare un numero di previdenza sociale chiaramente errato per verificare l'insuccesso, sono preoccupato di includerne uno che sia buono per risultati corretti (e positivi). Quello che segue è un test semplificato che sto usando:

[TestMethod]
    public void API_Hours_Get()
    {
        var controller = new HoursController();
        var employee = new EmployeeController();
        var badResult = controller.Get(123124569);
        var goodResult = controller.Get(employee.GetEmployeeByUserId("Username").First().SSNumber);
        Assert.IsFalse(badResult.Any());
        Assert.IsTrue(goodResult.Any());
    }

Questo test passa bene e mi dà i risultati che voglio. Ma, dalla mia comprensione, è un test di integrazione. Dal punto di vista delle migliori pratiche, questo sostituto va bene per la mia suite di test e ignorare semplicemente il fatto che non ho un test unitario "puro" per i moduli dipendenti da SSN o esiste un approccio migliore per situazioni come questa?

    
posta Adam Bartz 20.05.2013 - 20:47
fonte

2 risposte

5

Un approccio migliore per questo genere di cose consiste nel creare dati falsi / test che siano abbastanza reali dal punto di vista operativo senza entrare in problemi come l'utilizzo di SSN e indirizzi di posta elettronica dei clienti. Puoi quindi scrivere l'intera suite di test su dati falsi e fare cose come simulare vari bug reali operativi lungo la strada.

Guardando il codice penso che tu abbia un modo per andare qui - sembra che tu non sia nemmeno configurato per l'iniezione delle dipendenze che è il farmaco gateway per questo genere di cose.

    
risposta data 20.05.2013 - 20:55
fonte
0

Se si sta iniettando un repository, è possibile scrivere test sul contenuto del proprio cuore senza preoccuparsi del fatto che i dati siano reali.

Ricorda che cosa stai testando! Stai testando un'unità atomica di funzionalità. Non importa se l'SSN sia reale, è se il metodo che stai test lo gestisce correttamente. rifiuterò uno con troppe / troppe cifre, rifiuterà un'immissione nulla, ecc.

    
risposta data 21.05.2013 - 15:59
fonte

Leggi altre domande sui tag