Unit test per servizi Web ASP.NET

Esistono alcune differenze tra unit test per classi e unit test per servizi Web ASP.NET. La più importante consiste nel fatto che il progetto deve contenere un file con estensione aspx. In questo argomento viene illustrato come eseguire questa operazione e viene inoltre descritto ciò che avviene nel progetto di test quando si crea uno unit test per un servizio Web ASP.NET.

Per ulteriori informazioni su come eseguire test delle prestazioni su siti Web, vedere Creazione e modifica di test Web. Per ulteriori informazioni sugli unit test per classi, vedere Procedura: creare ed eseguire uno unit test.

Prerequisiti

Verificare che siano installati i componenti IIS seguenti:

Compatibilità metabase di IIS 6 e configurazione di IIS 6

Assicurarsi che nel progetto sia presente un file con estensione aspx

Per poter eseguire uno unit test, è necessario che nel progetto che contiene il servizio Web ASP.NET sia presente un file con estensione.aspx. In assenza di tale file, è comunque possibile creare unit test, tuttavia quando si tenta di eseguirli viene restituito un errore indicante che la richiesta Web è stata completata senza che però il test venga effettivamente eseguito. In effetti il test non è stato eseguito.

Per aggiungere un file con estensione aspx

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto contenente il servizio Web ASP.NET, scegliere Aggiungi, quindi Nuovo elemento.

  2. Nel riquadro Modelli installati della finestra di dialogo Aggiungi nuovo progetto fare clic su Web.

  3. Nell'elenco di modelli Web fare clic su Web Form, quindi fare clic su Aggiungi.

Al progetto verranno aggiunti i file WebForm1.aspx, WebForm1.aspx.cs e WebForm1.aspx.designer.css. Non è necessario modificare o utilizzare tali file.

Operazioni eseguite quando si genera uno unit test per un servizio Web ASP.NET

Nella figura seguente viene illustrato un metodo di test generato per un semplice progetto di servizio Web ASP.NET. Per informazioni su modifiche più generali che si verificano quando si crea uno unit test, vedere Composizione di uno unit test.

Metodo di unit test per ASP.NET

Metodo di unit test per ASP.NET

  1. Tutti gli unit test vengono generati con un attributo [TestMethod ()].

  2. L'attributo [Host Tipo ()] specifica l'adattatore host in cui verrà eseguito lo unit test. Non è necessario modificare tale attributo.

  3. L'attributo [AspNetDevelopmentServerHost()] specifica le impostazioni da utilizzare quando il server host per il test è un server di sviluppo ASP.NET. Questo attributo è incluso solo se il servizio Web ASP.NET è in esecuzione nel file system invece che in un processo IIS. Non è necessario modificare tale attributo.

  4. L'attributo [UrlToTest ()] specifica l'URL del servizio Web ASP.NET dello unit test.

  5. La parte rimanente rappresenta il corpo del metodo di test. È probabile che sia opportuno inizializzare le variabili e modificare le asserzioni nel metodo di test.

Nota

Per ulteriori informazioni sugli attributi descritti in questo argomento, vedere

Microsoft.VisualStudio.TestTools.UnitTesting.

Se si esegue Windows Vista, è necessario eseguire Visual Studio come amministratore.

Se si esegue Windows Vista, è necessario eseguire Visual Studio come amministratore per poter eseguire unit test ASP.NET. Se si esegue Visual Studio come utente normale, è possibile creare un sito Web e creare ed eseguire test ASP.NET, ma i test daranno esito negativo. Per eseguire Visual Studio come amministratore, fare clic con il pulsante destro del mouse su Microsoft Visual Studio 2010 nel menu Start, quindi scegliere Esegui come amministratore.

Se si esegue IIS come utente non predefinito, verificare che tutte le autorizzazioni necessarie siano abilitate

Quando si crea un servizio Web ASP.NET, si sceglie un percorso di tipo File system , HTTP o FTP. Se si sceglie File system, viene utilizzato il processo del server di sviluppo ASP.NET. Se si sceglie HTTP o FTP, viene utilizzato il processo IIS.

Se il servizio Web ASP.NET è in esecuzione nel processo IIS, è possibile scegliere di eseguire lo unit test come utente non predefinito per motivi di sicurezza. Un utente non predefinito rappresenta un'identità di processo diversa.

Se ad esempio il servizio Web ASP.NET deve accedere alle risorse del computer, quali cartelle, file o un database, è possibile scegliere di eseguirlo in modo che le autorizzazioni su tali risorse siano esattamente quelle necessarie, non maggiori.

Se il servizio Web richiede autorizzazioni non disponibili per l'utente non predefinito, lo unit test potrebbe avere esito negativo. Ad esempio, il processo ASP.NET in esecuzione come utente non predefinito potrebbe disporre di autorizzazioni limitate, ma comunque tentare di generare file temporanei nella cartella %WINDIR%\Temp. Se le autorizzazioni predefinite su %WINDIR%\Temp non consentono al processo un accesso sufficiente per generare tali file, si verifica un errore. In questo caso, affinché l'esecuzione dello unit test riesca, è necessario concedere al processo autorizzazioni maggiori sulla cartella %WINDIR%\Temp.

Vedere anche

Riferimenti

Microsoft.VisualStudio.TestTools.UnitTesting

Concetti

Procedura: creare ed eseguire uno unit test

Composizione di uno unit test