.NET Core: biblioteca de pruebas

En este capítulo, probaremos nuestra StringLibrary y, para hacerlo, necesitamos reorganizar nuestros proyectos para que podamos seguir la convención predeterminada.

Abramos el global.json archivo.

{ 
   "projects": [ "src", "test" ], 
   "sdk": { 
      "version": "1.0.0-preview2-003131" 
   } 
}

En la parte superior de este archivo, verá la configuración del proyecto y configura una carpeta como src y test por defecto.

Como por convención debemos tener proyectos en estas carpetas, esta es la nueva convención y se utilizará como parte de .NET Core.

En el Explorador de soluciones, puede ver que tanto el proyecto de la consola como el proyecto de la biblioteca están dentro del src carpeta mientras el proyecto de prueba está dentro test carpeta.

Y la estructura de proyectos en el Explorador de soluciones no representa dónde existen físicamente los proyectos en el disco. Ahora abramos la carpeta Solución y verá queStringLibrary el proyecto no está dentro del src carpeta.

Puedes ver que ambos src y test carpetas se asignan a la convención especificada en el global.jsonarchivo. Sin embargo, tenemos un proyecto StringLibrary que está fuera de la convención. Agreguemos ahora elStringLibrary proyecto dentro del src carpeta.

En la carpeta src, tenemos dos proyectos y necesitamos solucionar el problema para poder usar todos los proyectos correctamente. Regresemos a Visual Studio y hagamos clic derecho en el proyecto StringLibrary y seleccionemos la opción Eliminar. No lo eliminará, pero solo eliminará el proyecto.

Ahora haga clic derecho en la carpeta src y seleccione Add → Existing Project…

Busque el proyecto StringLibrary que ahora está dentro del src carpeta, seleccione la StringLibrary.csproj archivo y haga clic en Open.

Ahora tenemos que eliminar la referencia de StringLibrary desde el project.json archivo de la aplicación de consola.

{ 
   "version": "1.0.0-*", 
   "buildOptions": { 
      "emitEntryPoint": true 
   }, 
   "dependencies": { 
      "Microsoft.NETCore.App": { 
         "type": "platform", 
         "version": "1.0.1" 
      }, 
      "NuGet.CommandLine": "3.5.0", 
      "System.Runtime.Serialization.Json": "4.0.3" 
   }, 
   "frameworks": { 
      "netcoreapp1.0": { 
         "dependencies": { }, 
         "imports": "dnxcore50" 
      } 
   } 
}

Guarde los cambios y luego agregue una referencia de StringLibrary nuevamente en su proyecto de consola.

{ 
   "version": "1.0.0-*", 
   "buildOptions": { 
      "emitEntryPoint": true 
   }, 
   "dependencies": { 
      "Microsoft.NETCore.App": { 
         "type": "platform", 
         "version": "1.0.1" 
      }, 
   "NuGet.CommandLine": "3.5.0", 
      "System.Runtime.Serialization.Json": "4.0.3" 
   }, 
   "frameworks": { 
      "netcoreapp1.0": { 
         "dependencies": { 
            "StringLibrary": { 
               "target": "project" 
            } 
         }, 
         "imports": "dnxcore50" 
      } 
   } 
}

Ahora todo debería funcionar de nuevo y puedes construir StringLibrary y entonces FirstApp(proyecto de consola) sin ningún error. Probemos ahora la funcionalidad StringLibrary usando xunit. Necesitamos agregar una referencia de StringLibrary en nuestro proyecto de prueba. Haga clic con el botón derecho en el proyecto Referencias de StringLibraryTests y seleccione Agregar referencia ...

Hacer clic OK que agregará una referencia de StringLibrarya nuestro proyecto de prueba. Reemplacemos ahora el siguiente código en elTests.cs archivo.

using System; 
using Xunit; 
using StringLibrary; 
  
namespace Tests { 
   public class Tests { 
      [Fact] 
      public void StartsWithUpperCaseTest() { 
         string input = "Mark"; 
         Assert.True(input.StartsWithUpper()); 
      } 
      [Fact] 
      public void StartsWithLowerCaseTest() { 
         string input = "mark"; 
         Assert.True(input.StartsWithLower()); 
      } 
      [Fact] 
      public void StartsWithNumberCaseTest() { 
         string input = "123"; 
         Assert.True(input.StartsWithNumber()); 
      } 
   } 
}

Puede ver que tenemos tres métodos de prueba que probarán la funcionalidad de StringLibrary. Hagamos clic en elRun All enlace y verá el siguiente resultado en Test Explorer.

También puede ejecutar las pruebas desde la línea de comandos. Abramos el símbolo del sistema y ejecutemos eldotnet test mando.