Devo fare test unitari per la stessa applicazione mirata su due diverse versioni di .NET?

2

Ecco un po 'di contesto:

Sto praticando TDD per una nuova applicazione destinata a .NET 3.5 CF e .NET 4.5.2 FF.

Potrei avere una parte del codice che usa il polimorfismo per decidere in fase di esecuzione una strategia (il modello di progettazione) da utilizzare mentre si esegue su una macchina .NET 3.5 CF e un'altra in esecuzione su .NET 4.5.2 FF macchina. Entrambe le versioni sono in soluzione diversa e i file di codice vengono aggiunti come collegamenti per non "duplicare il codice". Questo è fuori dal mio controllo poiché è stata una decisione aziendale presa al di sopra di me e devo conviverci.

La mia domanda è:

Devo aggiungere un progetto di test sia alla versione FF che alla versione CF (aggiungendo i file dei casi di test come collegamenti nella soluzione CF per poterli eseguire in CF) o se tutto è testato in FF posso supporre la metà CF è OK?

Nota:

So che la parte "due soluzioni" potrebbe non essere il modo migliore per andare, ma è quello con cui devo lavorare.

    
posta Sebastien 29.11.2016 - 17:37
fonte

3 risposte

5

Interrompi il collegamento dei file di codice.

Invece, inizia ad estrarre i file condivisi in vere e proprie librerie di classi che hanno come target 3.5. Se li stai già condividendo tra i progetti, devono già compilare quella versione del compilatore. Ricorda, puoi sempre fare riferimento a una libreria costruita contro una versione precedente del framework.

Fermare la follia. Qualcuno sa che hai fatto la cosa giusta e hai creato invece le librerie di classe? Dici che questo è un nuovo progetto, non c'è motivo di creare un casino come questo il primo giorno.

    
risposta data 30.11.2016 - 01:36
fonte
1

Se ci sono (si prevede che siano) file specifici per una delle piattaforme o funzionalità supportate che si comportano intenzionalmente in modo diverso sulle diverse piattaforme, allora è necessario testare quelle parti su entrambe le piattaforme.

Oltre a ciò, è una questione di sforzo rispetto al rischio se vuoi testare il resto su entrambe le piattaforme o solo su uno di essi.

    
risposta data 29.11.2016 - 18:41
fonte
1

Come saprai, la tua soluzione riguarderà almeno due diverse piattaforme 3.5 e 4.5.2. Devi assicurarti che tutti i casi di test siano rivolti a entrambe le piattaforme.

Se uno o più test dipendono da una piattaforma specifica, dovrai assicurarti che ci sia un test simile sull'altra piattaforma.

Soprattutto hai bisogno di ulteriori casi di test per assicurarti che il codice fatto verso 4.5.2 non interferisca con il codice fatto verso 3.5 e viceversa.

Questo è tutt'altro che semplice, ci vorrà un sacco di sforzi per assicurarti di coprire ogni differenza tra le due piattaforme.

    
risposta data 29.11.2016 - 19:01
fonte

Leggi altre domande sui tag