Procedura: testare un metodo privato

Aggiornamento: novembre 2007

Utilizzando gli unit test è possibile testare sia metodi pubblici sia metodi privati. Come per i metodi pubblici, gli unit test per i metodi privati vengono creati automaticamente quando si generano i test dal codice sul quale si vuole eseguire il test.

Benché si possano codificare manualmente gli unit test per testare qualsiasi metodo, quest'attività è più difficile per i metodi privati che non per i metodi pubblici poiché richiede una maggiore comprensione degli aspetti complessi della reflection. Sarà dunque più pratico generare test per metodi privati anziché codificarli manualmente.

Quando si genera uno unit test per un metodo privato, in Visual Studio viene creata automaticamente una funzione di accesso privata. Una funzione di accesso privata è un assembly tramite cui il test è in grado di accedere a un metodo privato dall'esterno della relativa classe. Per ulteriori informazioni, vedere Utilizzo delle funzioni di accesso private.

Nota:

Per eseguire il test di proprietà e campi privati, oltre ai metodi privati è possibile utilizzare una funzione di accesso privata. Tuttavia, non è possibile utilizzare una funzione di accesso privata per eseguire il test di versioni private di eventi, delegati, metodi anonimi e membri contrassegnati con l'attributo CompilerGeneratedAttribute.

Utilizzo di InternalsVisibleTo o di una funzione di accesso privata

È possibile utilizzare un assembly di funzione di accesso privata per accedere ai membri privati e interni. Se il codice sotto test presenta membri interni ma non membri privati, la soluzione migliore consiste nell'utilizzare l'attributo InternalsVisibleTo per il codice sotto test ed evitare di creare un assembly di funzione di accesso privata. Se tuttavia il codice include membri privati e interni su cui si desidera eseguire il test, utilizzare la funzione di accesso privata, in grado di fornire l'accesso a entrambi i tipi di membro. Per ulteriori informazioni, vedere Utilizzo delle funzioni di accesso private.

Per generare uno unit test per un metodo privato

  1. Aprire un file di codice sorgente nel quale è contenuto un metodo privato.

  2. Fare clic con il tasto destro del mouse sul metodo privato, quindi selezionare Crea unit test.

    In questo modo viene visualizzata la finestra di dialogo Crea unit test. Nella struttura visibile è selezionata solo la casella di controllo per il metodo privato.

  3. (Opzionale) Nella finestra di dialogo Crea unit test è possibile modificare il Progetto di output. Facendo clic su Impostazioni è inoltre possibile riconfigurare la modalità di generazione degli unit test.

  4. Fare clic su OK.

    Verrà generato il codice per l'accesso al metodo privato, compilato il progetto di test e creato o aggiornato l'assembly della funzione di accesso privata.

    Se il progetto di test non è dotato di unit test, viene creato un file di codice sorgente che servirà per contenere gli unit test. Analogalmente al file che contiene le funzioni di accesso privato, anche il file in cui sono contenuti gli unit test è visibile nel progetto di test in Esplora soluzioni.

  5. Aprire il file in cui sono contenuti gli unit test e scorrere al test per il metodo privato. Cercare le istruzioni segnate con i commenti // TODO: e completarle seguendo le indicazioni riportate nei commenti. In questo modo mediante il test veranno prodotti risultati più accurati. Per ulteriori informazioni, vedere Procedura: modificare unit test.

    Lo unit test per il metodo privato può ora essere eseguito. Per ulteriori informazioni, vedere Procedura: eseguire test selezionati.

Vedere anche

Attività

Procedura: modificare unit test

Procedura dettagliata: creazione ed esecuzione di unit test

Concetti

Utilizzo delle funzioni di accesso private

Utilizzo di publicize per creare funzioni di accesso private

Impostazione dell'attributo InternalsVisibleTo

Altre risorse

Procedura: generare unit test