Saltar al pie de página
.NET AYUDA

Aplicación de consola de prueba C# (Cómo funciona para desarrolladores)

Las pruebas desempeñan un papel fundamental en el ámbito del desarrollo de software, sirviendo como un elemento crucial para garantizar la calidad de las aplicaciones. Entre la gran cantidad de frameworks disponibles, .NET se destaca como una elección ampliamente aceptada para crear aplicaciones basadas en Windows. Este artículo profundiza en las complejidades de .NET TestConsole, una herramienta diseñada específicamente para probar aplicaciones .NET.

A lo largo de esta exploración, escribiremos un ejemplo de código completo que ilustra la implementación práctica de .NET TestConsole. Además, destacaremos IronPDF, una biblioteca C# ejemplar que se integra perfectamente con .NET TestConsole. Esta biblioteca resulta invaluable, permitiendo a los desarrolladores acceder y generar PDFs sin esfuerzo dentro del entorno TestConsole de .NET. Únase a nosotros en este viaje mientras desentrañamos las funcionalidades y posibilidades que surgen de la sinergia entre .NET TestConsole y las funcionalidades PDF C# de IronPDF.

1. Introducción: TestConsole

TestConsole es una biblioteca de pruebas versátil que introduce un enfoque distintivo a las pruebas unitarias en el lenguaje de programación C#. Los métodos tradicionales de pruebas unitarias a menudo enfrentan desafíos al tratar con grandes conjuntos de datos y aserciones complejas, lo que lleva a dificultades para identificar diferencias entre resultados esperados y reales. En respuesta a esto, TestConsole ofrece un flujo de trabajo novedoso, cambiando del enfoque tradicional basado en predicciones a una comparación lado a lado de la salida formateada con una versión de salida "aprobada" designada.

En esta biblioteca, particularmente con TestConsole, la variante '.Core' amplía las capacidades de formateo heredadas del proyecto original TestConsole e incorpora funciones esenciales de aprobación de pruebas en escenarios donde los resultados de las pruebas difieren de las expectativas. TestConsole.Core se integra de manera fluida con el servidor de compilación para desencadenar un fallo de prueba. En el PC de desarrollo, por defecto, ofrece reconfigurabilidad para utilizar utilidades de comparación de archivos instaladas para visualizar diferencias. Cabe destacar que este enfoque agiliza el proceso de aprobación, permitiendo a los desarrolladores actualizar la versión aprobada manualmente si se esperan diferencias.

1.1. ¿Por qué usar TestConsole?

TestConsole.Core se inspira en ApprovalTests pero se diferencia al ofrecer soporte para escribir suites de pruebas tanto para el marco completo como para .NET Core. La biblioteca aborda la necesidad de pruebas en ambientes diversos, ya que, al momento de la publicación, ApprovalTests estaba orientada principalmente a escenarios de marco completo. La sintaxis en TestConsole.Core, aunque comparte similitudes con ApprovalTests, ofrece distinciones, especialmente en lo que respecta a la selección de herramientas de comparación de archivos y la aprobación directa de contenido.

Desarrollada para facilitar las pruebas en el código de aplicaciones .NET Core, TestConsole.Core surge de la necesidad de cerrar la brecha dejada por la falta de soporte para aplicaciones y estándar .NET en ApprovalTests. Con un enfoque en habilitar pruebas efectivas de grandes conjuntos de datos, las funciones de aprobación de pruebas de TestConsole.Core acomodan datos formateados usando el objeto de salida del Test Console y extienden su funcionalidad para manejar cualquier entrada de texto plano, proporcionando una solución integral para pruebas unitarias en C#.

1.2. Instalar TestConsole C#

La consola de pruebas se puede instalar usando el Administrador de paquetes NuGet desde dentro de Visual Studio, o ejecutando el siguiente comando en la Consola del administrador de paquetes NuGet.

Install-Package TestConsole -Version 2.6.0

O descargar directamente desde la distribución de TestConsole en NuGet.

2. Ejemplo de código de TestConsole

En esta sección, veremos cómo se pueden convertir las salidas de la consola en informes. El siguiente código fuente usa una consola de pruebas para convertir objetos enumerables en una tabla de informes bien formateada.

using TestConsoleLib;
using System;
using System.Linq;

// Instantiate the output class from TestConsoleLib
var output = new Output();

// Generate a collection of anonymous objects containing value, square, and string length
var data = Enumerable.Range(0, 10)
    .Select(i => new { Value = i, Squared = i * i, String = new string('I', i) });

// Format the data into a table using TestConsoleLib's method
output.FormatTable(data);

// Retrieve the formatted report as a string
string report = output.Report;

// Print the formatted report to console
Console.WriteLine(report);
using TestConsoleLib;
using System;
using System.Linq;

// Instantiate the output class from TestConsoleLib
var output = new Output();

// Generate a collection of anonymous objects containing value, square, and string length
var data = Enumerable.Range(0, 10)
    .Select(i => new { Value = i, Squared = i * i, String = new string('I', i) });

// Format the data into a table using TestConsoleLib's method
output.FormatTable(data);

// Retrieve the formatted report as a string
string report = output.Report;

// Print the formatted report to console
Console.WriteLine(report);
Imports TestConsoleLib
Imports System
Imports System.Linq

' Instantiate the output class from TestConsoleLib
Private output = New Output()

' Generate a collection of anonymous objects containing value, square, and string length
Private data = Enumerable.Range(0, 10).Select(Function(i) New With {
	Key .Value = i,
	Key .Squared = i * i,
	Key .String = New String("I"c, i)
})

' Format the data into a table using TestConsoleLib's method
output.FormatTable(data)

' Retrieve the formatted report as a string
Dim report As String = output.Report

' Print the formatted report to console
Console.WriteLine(report)
$vbLabelText   $csharpLabel

Este fragmento de código C# utiliza la biblioteca TestConsoleLib para demostrar y ejecutar un ejemplo sencillo de formateo y reporte de datos tabulares usando la clase de salida de TestConsole. Comienza creando una instancia de la clase Output llamada output. Posteriormente, genera una colección de 10 elementos que contienen objetos anónimos con propiedades que representan un valor entero, su cuadrado y una cadena de caracteres "I" cuya longitud corresponde al valor entero.

El método output.FormatTable() se invoca para formatear los datos en una tabla. El resultado formateado se almacena en la variable de cadena report, que finalmente se imprime en la consola usando Console.WriteLine(). Esto muestra la capacidad y habilidad de TestConsole para formatear y presentar datos tabulares con facilidad para mejorar la legibilidad durante pruebas unitarias o escenarios de depuración.

2.1. Salida

Aplicación Test Console C# (Cómo funciona para el desarrollador): Figura 1 - Salida del código anterior

3. IronPDF

El sitio web oficial de IronPDF ofrece una plataforma integral para una robusta biblioteca de PDF en C# diseñada para simplificar y mejorar el proceso de trabajo con documentos PDF en aplicaciones .NET. Ofreciendo un conjunto completo de características, IronPDF capacita a los desarrolladores para crear, manipular y extraer contenido de archivos PDF sin esfuerzo en sus proyectos C#. Con un enfoque en la flexibilidad y facilidad de uso, IronPDF admite una amplia gama de funcionalidades, incluida la generación de PDFs desde HTML, imágenes o documentos existentes, así como la incorporación de contenido dinámico, como gráficos y tablas.

Sus capacidades se extienden a la fusión, división y manipulación de páginas PDF, así como funciones como la extracción de texto e imágenes. Ya sea para informes, documentación o cualquier tarea relacionada con PDF, IronPDF se destaca como una solución confiable y versátil, optimizando la integración de funcionalidades PDF en aplicaciones C# con un esfuerzo mínimo.

3.1. Creación de archivos PDF de informes de la consola de pruebas

En esta sección, discutiremos cómo se puede convertir la salida de los informes de TestConsole.

Empezar con IronPDF


Instalar la biblioteca IronPDF

Instalación mediante el gestor de paquetes NuGet

Para integrar IronPDF en su proyecto de consola usando el Administrador de paquetes NuGet, siga estos pasos:

  1. Abre Visual Studio y en el explorador de soluciones, haz clic derecho en tu proyecto.
  2. Elige "Administrar paquetes NuGet…" del menú contextual.
  3. Ve a la pestaña de explorar y busca IronPDF.
  4. Selecciona la biblioteca IronPDF de los resultados de búsqueda y haz clic en el botón de instalar.
  5. Acepta cualquier mensaje de acuerdo de licencia.

Si desea incluir IronPDF en su proyecto a través de la consola del administrador de paquetes, ejecute el siguiente comando en la Consola del administrador de paquetes:

Install-Package IronPdf

Se descargará e instalará IronPDF en tu proyecto.

Instalación mediante el sitio web de NuGet

Para una descripción detallada de IronPDF, incluyendo sus características, compatibilidad y opciones de descarga adicionales, visita la página de IronPDF en el sitio web de NuGet en https://www.nuget.org/packages/IronPdf.

Instalación mediante DLL

Alternativamente, puede incorporar IronPDF directamente en su proyecto usando su archivo DLL. Descargue el archivo ZIP que contiene el DLL desde este Paquete ZIP de IronPDF. Descomprímelo e incluye la DLL en tu proyecto.

Una vez instalado, ahora recrearemos el ejemplo de informe anterior, pero esta vez en lugar de escribirlo en la consola, crearemos un informe en PDF a partir de él.

using TestConsole.OutputFormatting;
using TestConsoleLib;
using IronPdf;
using System;
using System.Linq;

// Instantiate the output class from TestConsoleLib
var output = new Output();

// Generate a collection of anonymous objects containing value, square, and string length
var data = Enumerable.Range(0, 10)
    .Select(i => new { Value = i, Squared = i * i, String = new string('I', i) });

// Format the data into a table and obtain the formatted output as a string
output.FormatTable(data);
string report = output.Report;

// Wrap the report in HTML pre-tags to maintain formatting
var htmlContent = $"<pre>{report}</pre>";

// Initialize IronPDF renderer and render the HTML content to PDF
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlContent);

// Save the PDF to a file
pdf.SaveAs("test.pdf");
using TestConsole.OutputFormatting;
using TestConsoleLib;
using IronPdf;
using System;
using System.Linq;

// Instantiate the output class from TestConsoleLib
var output = new Output();

// Generate a collection of anonymous objects containing value, square, and string length
var data = Enumerable.Range(0, 10)
    .Select(i => new { Value = i, Squared = i * i, String = new string('I', i) });

// Format the data into a table and obtain the formatted output as a string
output.FormatTable(data);
string report = output.Report;

// Wrap the report in HTML pre-tags to maintain formatting
var htmlContent = $"<pre>{report}</pre>";

// Initialize IronPDF renderer and render the HTML content to PDF
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlContent);

// Save the PDF to a file
pdf.SaveAs("test.pdf");
Imports TestConsole.OutputFormatting
Imports TestConsoleLib
Imports IronPdf
Imports System
Imports System.Linq

' Instantiate the output class from TestConsoleLib
Private output = New Output()

' Generate a collection of anonymous objects containing value, square, and string length
Private data = Enumerable.Range(0, 10).Select(Function(i) New With {
	Key .Value = i,
	Key .Squared = i * i,
	Key .String = New String("I"c, i)
})

' Format the data into a table and obtain the formatted output as a string
output.FormatTable(data)
Dim report As String = output.Report

' Wrap the report in HTML pre-tags to maintain formatting
Dim htmlContent = $"<pre>{report}</pre>"

' Initialize IronPDF renderer and render the HTML content to PDF
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)

' Save the PDF to a file
pdf.SaveAs("test.pdf")
$vbLabelText   $csharpLabel

Este fragmento de código C# muestra la integración de TestConsoleLib e IronPDF para generar un documento PDF que contiene una tabla de datos formateada. Inicialmente, crea una instancia de la clase Output de TestConsoleLib y formatea una tabla usando datos generados a partir de un rango de enteros. La salida formateada se almacena en la variable de cadena report, que luego se encierra dentro de etiquetas HTML pre para preservar el formateo.

Posteriormente, el código utiliza el ChromePdfRenderer de IronPDF para renderizar el contenido HTML como un documento PDF. Finalmente, el PDF resultante se guarda como "test.pdf". Este código demuestra la combinación sin fisuras de TestConsoleLib para el formateo e IronPDF para la generación de PDF, proporcionando una solución sencilla para incorporar datos formateados en documentos PDF dentro de una aplicación C#.

3.1.1. Salida

Aplicación Test Console C# (Cómo funciona para el desarrollador): Figura 2 - Salida del código anterior

4. Conclusión

El .NET TestConsole surge como una biblioteca de pruebas fundamental para aplicaciones C#, presentando un enfoque distintivo a las pruebas unitarias que alivia los desafíos asociados con grandes conjuntos de datos y aserciones complejas. La variante TestConsole.Core extiende su utilidad a través de entornos diversos, cerrando brechas dejadas por otros marcos y proporcionando un flujo de trabajo eficiente para comparaciones lado a lado de salidas formateadas.

Se integra sin problemas con IronPDF, una robusta biblioteca C#, y no solo facilita las pruebas agilizadas, sino que también extiende sus capacidades a la generación y manipulación de PDF. Juntos, estas herramientas capacitan a los desarrolladores para manejar sin esfuerzo las complejidades de las pruebas y mejorar la generación de documentos en sus proyectos C#, ofreciendo una solución integral y eficiente.

El tutorial detallado y completo sobre la conversión de HTML a PDF de IronPDF se puede encontrar en la Guía de Tutorial de IronPDF.

Preguntas Frecuentes

¿Cómo puedo crear una aplicación de consola en C#?

Para crear una aplicación de consola en C#, puede utilizar Visual Studio para iniciar un nuevo proyecto y seleccionar 'Aplicación de Consola' como el tipo de proyecto. Luego, escriba su código C# dentro del método Main para ejecutar la lógica de su aplicación.

¿Cuál es el propósito de .NET TestConsole?

.NET TestConsole está diseñado para probar aplicaciones .NET proporcionando un flujo de trabajo único que involucra la comparación lado a lado de salidas formateadas contra estándares aprobados, mejorando la eficiencia del proceso de pruebas.

¿Cómo puedo convertir las salidas de aplicaciones de consola a PDF en C#?

Puede usar IronPDF para convertir las salidas de aplicaciones de consola a PDF en C#. Primero, capture la salida de la consola como una cadena HTML formateada, luego use el método RenderHtmlAsPdf de IronPDF para crear un PDF a partir del contenido HTML.

¿Cuáles son los beneficios de usar una biblioteca PDF en aplicaciones C#?

El uso de una biblioteca PDF como IronPDF en aplicaciones C# permite a los desarrolladores generar, modificar y extraer contenido de archivos PDF, habilitando funciones tales como la creación de PDF desde contenido HTML, la incorporación de datos dinámicos, y más.

¿Cómo funciona la comparación de salidas lado a lado en .NET TestConsole?

La comparación de salidas lado a lado en .NET TestConsole implica comparar la salida formateada de su aplicación con un estándar preaprobado, permitiendo a los desarrolladores identificar discrepancias y asegurar la precisión en los resultados de las pruebas.

¿Puede .NET TestConsole usarse con .NET Core?

Sí, .NET TestConsole puede usarse tanto con el marco completo como con .NET Core, proporcionando flexibilidad y compatibilidad en diferentes entornos .NET para probar aplicaciones.

¿Cómo puedo integrar una biblioteca PDF en mi proyecto .NET?

Para integrar una biblioteca PDF como IronPDF en su proyecto .NET, puede usar el administrador de paquetes NuGet en Visual Studio para instalarla, o descargar el DLL de la biblioteca y agregarlo a las referencias de su proyecto.

¿Cuál es la ventaja de usar una biblioteca de pruebas en el desarrollo de software?

Una biblioteca de pruebas, como .NET TestConsole, agiliza el proceso de pruebas al automatizar las aprobaciones de prueba, facilitar comparaciones de salidas lado a lado eficientemente y mejorar la gestión general de las pruebas, llevando a una calidad de software mejorada.

¿Cómo manejas conjuntos de datos grandes con .NET TestConsole?

.NET TestConsole está equipada para manejar conjuntos de datos grandes de manera efectiva utilizando un enfoque de comparación que simplifica las aserciones complejas y asegura una prueba precisa de amplias salidas de datos.

¿Dónde puedo encontrar más información sobre el uso de IronPDF?

Más información sobre el uso de IronPDF se puede encontrar en el sitio web oficial de IronPDF, que proporciona guías completas, tutoriales y documentación para integrar y utilizar IronPDF en proyectos C#.

Jacob Mellor, Director de Tecnología @ Team Iron
Director de Tecnología

Jacob Mellor es Director de Tecnología en Iron Software y un ingeniero visionario que lidera la tecnología PDF en C#. Como el desarrollador original detrás de la base de código central de Iron Software, ha moldeado la arquitectura de productos de la compañía desde ...

Leer más