Saltar al contenido

Probando las aplicaciones centrales de ASP.NET para dispositivos de plataformas cruzadas

Asumo que ya tienes instalado el SDK del núcleo de .NET, el código de Visual Studio y la extensión C#. También asumo que tienes alguna experiencia en el desarrollo de aplicaciones ASP.NET MVC (Core o de otro tipo). Esta guía es sobre pruebas, no sobre desarrollo.

Configuración

Voy a empezar desde el código del estudio visual. Con la ventana del terminal integrado abierta, cambiaré a mi directorio de desarrollo y crearé un nuevo directorio para el proyecto de demostración. Este será el comienzo de una aplicación de comercio electrónico, así que la llamaré CoreStore.

Probando las aplicaciones centrales de ASP.NET para dispositivos de plataformas cruzadas
Probando las aplicaciones centrales de ASP.NET para dispositivos de plataformas cruzadas
12;mkdir CoreStore;cd CoreStore

bash

A continuación crearé dos proyectos, uno para la aplicación web y otro para las pruebas de la unidad. El proyecto de la aplicación web se llamará CoreStore.Web.

1; dotnet nueva web -o CoreStore.Web

bash

Adelante, abre la carpeta de Código de Estudio Visual ahora. Esto te pedirá que añadas activos de construcción y depuración. Para asegurarse de que están configurados correctamente para el proyecto web, esto debe hacerse antes de agregar el proyecto de prueba.

Dos marcos

El proyecto de prueba requería una elección. El CLI dotnet soporta dos marcos de pruebas. El primero es MSTest, que es de Microsoft. Es un buen producto, y si tienes experiencia previa en probar software de Microsoft en Visual Studio, es probable que lo hayas usado.

Pero ahora estamos en un mundo multiplataforma y mientras que MSTest con .NET Core es multiplataforma, hay otras opciones. Una de ellas es xUnit.net. Es un proyecto de código abierto inspirado en el concepto de xUnit. Hay muchos marcos de trabajo que siguen esta estructura y xUnit.NET es el de los proyectos .NET. La plantilla dotnet para xUnit es xunit. Nombraré al proyecto de prueba CoreStore.Tests.

1; dotnet new xunit -o CoreStore.Tests

bash

Así que toda la estructura del proyecto debería verse así cuando se abra en Código de Estudio Visual:

Figura 1. La estructura de la carpeta del proyecto

Configuración de CoreStore.Web

La aplicación web ASP.NET Core vacía no tiene soporte para MVC. Podría haber creado un esqueleto de la aplicación MVC desde la CLI de dotnet, pero habría incluido mucho contenido de fontanería y de arranque que sólo se interpondría en el camino. En su lugar, añadiré MVC a mano. Son sólo unas pocas líneas de código.

Primero en el archivo Startup.cs, en el método ConfigureServices, agregue la siguiente línea del código:

1servicios.AddMvc();

cs

Luego en el método Configurar, elimina la llamada a app.Run y la reemplaza por lo siguiente:

1app.UseMvcWithDefaultRoute();

cs

Esto será lo mismo que crear una ruta explícita con un controlador de Inicio predeterminado, una acción de Índice y un id opcional. Por lo tanto, necesito crear esos recursos. Primero en la raíz del proyecto CoreStore.Web, agregaré una nueva carpeta llamada Controladores para seguir la convención del Core MVC de ASP.NET. Dentro de la carpeta, seguiré honrando a la convención con un archivo C# llamado HomeController.cs.

Figura 2. La estructura de la carpeta de controladores

La clase de HomeController será muy simple:

12345678910espacio de nombres CoreStore.Web.Controladores{clase públicaHomeController:Controller{publicIActionResultIndex(){returnView();}}}

cs

Añadiré más a esta clase a lo largo de la guía pero, para empezar, tendré un método de acción único que devolverá su vista por defecto. Así que tendré que crearlo. En la raíz del proyecto CoreStore.Web crearé una nueva carpeta llamada Views y en ella una subcarpeta llamada Home. En la carpeta Home colocaré un archivo de vistas llamado Index.cshtml. El archivo view, por ahora, contendrá algo de HTML simple.

1<h1;The Index Page</h1;

html

Y aquí está la estructura completa del proyecto CoreStore.Web en Código de Estudio Visual.

Figura 3. La estructura del proyecto CoreStore.Web

Configuración de CoreStore.Tests

La única tarea para configurar el proyecto CoreStore.Tests es añadir una referencia al proyecto CoreStore.Web que es el objetivo de las pruebas. En el terminal integrado, cambiaré al directorio del proyecto de pruebas.

1;cd CoreStore.Tests

bash

Entonces usa el puntonet CLI para añadir una referencia al archivo de proyecto CoreStore.Web.

1; dotnet añadir referencia ../CoreStore.Web/CoreStore.Web.csproj

bash

Abriendo el archivo CoreStore.Tests.csproj, noten la nueva etiqueta ProjectReference.

123<ItemGroup;|;ProjectReference Include="..N-CoreStore.WebN-CoreStore.Web.csproj"/;/ItemGroup;

cs

Paso final

Este último paso es curioso. Actualmente, el código de Visual Studio no proporciona Intellisense para los proyectos referenciados a menos que se reinicie el editor. No estoy seguro de qué causa esto, pero afortunadamente la solución es simple. Sólo hay que abrir la Paleta de Comandos con Cmd-Shift-P en macOS o Ctrl-Shift-P en Windows. En la barra de búsqueda, escribe “recargar” y selecciona la opción “Recargar la ventana”.

Figura 4. Recargando el editor