Testsources é uma ferramenta de gerenciamento de arquivos de teste para .NET Core e .Net Framework
O TestSources facilita o manuseio, a organização e o uso de arquivos de teste em um teste .NET. Ele simplifica bastante o trabalho usual de ter que configurar uma ferramenta/código de gerenciamento de arquivos, implementar validações e ativar o acesso adequado aos arquivos e seus conteúdos ... eles precisam ser configurados manualmente em todos os projetos de teste que gerenciam arquivos de qualquer tipo, consumindo tempo e repetindo código. Isso é mau. Mas não mais, aqui estão os testes para ajudar.
Para começar, instale o pacote Nuget TestSources Nuget:
dotnet add package TestSources Na raiz do projeto, adicione uma nova pasta, chamada " __testsources__ ". Deve estar em minúsculas, com dois caracteres sublinhados " _ " antes e depois. Dentro da pasta Tessources, crie um arquivo de texto chamado "ATEXTFILE.TXT" e dentro adicione "algum texto" ou qualquer texto do seu gosto.
Para obter este arquivo de teste e usá -lo nos testes de sua unidade (ou integração), siga a próxima etapa:
Insira um teste de teste getfile TestSource.GetFile("aTextFile.txt"); no seu teste de unidade.
Exemplo:
/// <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 ) ;
} A instrução TestSource.GetFile() obterá o arquivo com o nome especificado localizado na pasta " __testsources__ ". Em seguida, a instrução Metachained AsString() obterá seu conteúdo e os entregará prontos para uso em um formulário de string, com a codificação UTF-8. (É configurável também)
Você pode criar pastas dentro da pasta " __testsources__ ", sem nenhum limite, exceto a configurada pelo seu sistema operacional.
O mesmo acontece com os arquivos, você pode adicioná -los em qualquer nível e usar sua imaginação para organizar seus arquivos de teste até que isso lhe agrada.
A instrução TestSource.GetFile(filename, true) estará localizada em qualquer arquivo no diretório raiz do teste, já que ele existe e você o digitou corretamente.
Além disso, você pode obter uma referência a uma pasta com uma declaração semelhante:
TestSource.GetFolder(foldername) encontrará a pasta chamada foldername na raiz do diretório raiz do teste, enquanto TestSource.GetFile(filename, true) encontrará a pasta nomeada em qualquer uma de suas subpastas.
Os arquivos cumprem a interface ITestSourceFile e isso nos permite verificar seus pais, obter o nome do arquivo, o nome completo, incluindo o caminho e, em seguida, algumas extensões como:
OpenRead() - abre um arquivo para leitura retornando um fluxo de arquivo.AsString() - lê o arquivo atual e retorna seu conteúdo como uma string com uma codificação UTF8 padrão, que pode ser substituída.AsByteArray() - lê o arquivo atual e retorna uma matriz de bytes de seu conteúdo.AsFileStream() - lê o arquivo atual e retorna um FileStream a ele.AsMemoryStream() - lê o arquivo atual e retorna seu conteúdo como um MemoryStream.AsStream() - lê o arquivo atual e retorna seu conteúdo como um fluxo.GetHash() - Retorna o hash de um arquivo, dado um algoritmo de hash criptográfico.AsType<T>() - Retorna o conteúdo de um arquivo como tipo de concreto, desaperando seu conteúdo JSON.AsJson() - lê o arquivo atual e retorna seu conteúdo como uma string json com uma codificação UTF8 padrão, que pode ser substituída. As pastas ou diretórios cumprem a interface ITestSourceDir e isso nos permite verificar seus pais, obter o nome da pasta, o nome completo, incluindo o caminho e, em seguida, algumas extensões como:
GetFiles() - Retorna uma lista dos arquivos contidos nesta pasta. Obviamente, cumprindo a interface ITESTSourceFile.GetFolders() - Retorna uma lista das pastas contidas nesta pasta. Obviamente, cumprindo a interface do itestsourcedir. (Se nenhum arquivo ou pastas, a coleção estiver vazia) Eles simplesmente trabalham, nada especialmente para se instalar lá.
Este projeto adotou o Código de Conduta definido pelo Pacto Colaborador para esclarecer o comportamento esperado em nossa comunidade. Para obter mais informações, consulte o Código de Conduta da Swiss Life OSS.