TestSources es una herramienta de administración de archivos de prueba para .NET Core y .NET Framework
TestSources facilita, organizar y usar archivos de prueba en una prueba .NET. Simplifica enormemente el trabajo habitual de tener que configurar una herramienta/código de administración de archivos, implementar validaciones y habilitar el acceso adecuado a los archivos y sus contenidos ... esos deben configurarse manualmente en cada proyecto de prueba que administre archivos de cualquier tipo, consumir tiempo y repetición de código. Eso es malvado. Pero no más, aquí está los Testsurces para ayudar.
Para comenzar, instale el paquete Nuget de TestSources:
dotnet add package TestSources En la raíz del proyecto, agregue una nueva carpeta, llamada " __testsources__ ". Debe estar en minúsculas, con dos caracteres subrayados " _ " antes y después. Dentro de nuestra carpeta Tessources, cree un archivo de texto llamado "atextFile.txt" y además agregue "algún texto", o cualquier texto de su gusto.
Para obtener este archivo de prueba y usarlo dentro de las pruebas de su unidad (o integración), siga el siguiente paso:
Insertar una instrucción GetFile TestSource.GetFile("aTextFile.txt"); en su prueba unitaria.
Ejemplo:
/// <summary>
/// Tests if the test file contains some text.
/// </summary>
[ Fact ]
public void TestThatTheTextFileContainsText ( )
{
// arrange
string fileName = "aTextFile.txt" ;
// act
string textInsideTheFile =
TestSource . GetFile ( fileName )
. AsString ( ) ;
// Assert
Assert . NotEmpty ( textInsideTheFile ) ;
} La instrucción TestSource.GetFile() obtendrá el archivo con el nombre especificado ubicado en la carpeta " __testsources__ ". A continuación, la declaración AsString() metachaned obtendrá su contenido y los entregará listos para usar en un formulario de cadena, con la codificación UTF-8. (también es configurable)
Puede crear carpetas dentro de la carpeta " __testsources__ ", sin ningún límite, excepto la configurada por su sistema operativo.
Lo mismo ocurre con los archivos, puede agregarlos en cualquier nivel y usar su imaginación para organizar sus archivos de prueba hasta que le agrada.
La declaración TestSource.GetFile(filename, true) obtendrá cualquier archivo ubicado en el directorio root de TestSources, dado que existe y lo ha escrito correctamente.
Además, puede obtener una referencia a una carpeta con una declaración similar:
TestSource.GetFolder(foldername) encontrará la carpeta llamada foldername en la raíz del directorio de la raíz de TestSources, mientras que TestSource.GetFile(filename, true) encontrará la carpeta nombrada en cualquiera de sus subcarpetas.
Los archivos cumplen la interfaz ITestSourceFile y esto nos permite verificar su padre, obtener el nombre del archivo, el nombre completo que incluye la ruta y luego algunas extensiones como:
OpenRead() : abre un archivo para leer la devolución de una transmisión de archivo.AsString() : lee el archivo actual y devuelve su contenido como una cadena con una codificación UTF8 predeterminada, que puede anularse.AsByteArray() : lee el archivo actual y devuelve una matriz de bytes de su contenido.AsFileStream() : lee el archivo actual y le devuelve una flujo de filre.AsMemoryStream() : lee el archivo actual y devuelve su contenido como MemoryStream.AsStream() : lee el archivo actual y devuelve su contenido como un flujo.GetHash() - Devuelve el hash de un archivo, dado un algoritmo de hash criptográfico.AsType<T>() : devuelve el contenido de un archivo como un tipo concreto, deserializando su contenido JSON.AsJson() : lee el archivo actual y devuelve su contenido como una cadena JSON con una codificación UTF8 predeterminada, que puede anularse. Las carpetas o directorios cumplen la interfaz ITestSourceDir y esto nos permite verificar a su padre, obtener el nombre de la carpeta, el nombre completo, incluida la ruta y luego algunas extensiones como:
GetFiles() : devuelve una lista de los archivos contenidos en esta carpeta. Por supuesto, cumpliendo la interfaz ItestSourceFile.GetFolders() - Devuelve una lista de las carpetas contenidas en esta carpeta. Por supuesto, cumpliendo la interfaz ItestSourcedir. (Si no hay archivos o carpetas, la colección está vacía) Simplemente funcionan, nada especialmente para establecer allí.
Este proyecto ha adoptado el Código de Conducta definido por el Pacto de contribuyente para aclarar el comportamiento esperado en nuestra comunidad. Para obtener más información, consulte el Código de Conducta Swiss Life Oss.