Il test dell'unità "utilizza" il progetto o ha lo stesso spazio dei nomi?

9

Sfondo

Sto lavorando a un progetto con C # .NET e ho appena aggiunto un nuovo progetto di test delle unità alla mia soluzione in Visual Studio. Il modo in cui ho sempre fatto questo è:

  1. Crea un nuovo progetto di test unitario.
  2. Il progetto include un riferimento al progetto sotto test .
  3. Solo include ( using ) il progetto.

Immagino che l'altro modo in cui potresti farlo sarebbe ...

  1. Crea un nuovo progetto di test unitario.
  2. Il progetto include un riferimento al progetto sotto test .
  3. Fai in modo che il progetto test dell'unità condivida uno spazio dei nomi con il progetto sotto test .

Domanda

C'è un modo accettato di farlo per i progetti nel mondo .NET, o , è solo un'opinione e non c'è niente di più?

    
posta Snoop 12.05.2016 - 16:22
fonte

2 risposte

12

I tuoi test unitari si trovano in un progetto separato e servono una funzione separata dal tuo codice principale, quindi metterli in uno spazio dei nomi separato ha più senso per me.

Se stai considerando di metterli nello stesso spazio dei nomi solo per salvare la riga using , allora non farlo. Meno codice è buono, codice più chiaro è migliore.

    
risposta data 14.05.2016 - 13:28
fonte
0

Ho utilizzato un progetto di test unitario con lo stesso spazio dei nomi del progetto reale (rimuovendo manualmente il suffisso Tests nello spazio dei nomi del progetto di test) per alcuni anni con zero problemi.

Penso che porti a un codice più diretto, quindi di solito suggerisco di seguire questo approccio. Alcuni degli svantaggi, come i potenziali conflitti nello spazio dei nomi, non dovrebbero verificarsi quando si ha a che fare con un progetto di test unitario poiché si stanno già seguendo alcune convenzioni di test, come il suffisso di tutte le classi di test con Tests . Inoltre, per me sembra abbastanza intuitivo avere le classi e le classi di test nello stesso spazio dei nomi.

Alcune persone penseranno che sia strano, ma in realtà non dovrebbe essere così, dato che molti assembly di framework usano anche questa strategia di avere più DLL che hanno classi nello stesso spazio dei nomi: non dovrebbe essere una cosa sorprendente o una cattiva pratica in sé e per sé.

Penso che questo sia più sul gusto personale, quindi non è davvero "rispondente" per sé. Detto questo, "il mio voto", come sopra, è di provarlo per te in un primo momento, e se ti piace l'approccio, fallo.

    
risposta data 09.11.2018 - 19:03
fonte

Leggi altre domande sui tag