.NET Core - Biblioteca de Teste

Neste capítulo, vamos testar nossa StringLibrary e, para isso, precisamos reorganizar nossos projetos para que possamos seguir a convenção padrão.

Vamos abrir o global.json Arquivo.

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

No topo deste arquivo, você verá as configurações do projeto e ele configura algumas pastas, como src e test por padrão.

Como por convenção, devemos ter projetos nessas pastas, esta é a nova convenção e que será usada como parte do .NET Core.

No Solution Explorer, você pode ver que tanto o projeto do console quanto o projeto da biblioteca estão dentro do src pasta enquanto o projeto de teste está dentro test pasta.

E a estrutura de projetos no Solution Explorer não representa onde os projetos existem fisicamente no disco. Vamos agora abrir a pasta Solução e você verá queStringLibrary projeto não está dentro do src pasta.

Você pode ver que ambos src e test as pastas são mapeadas para a convenção especificada no global.jsonArquivo. No entanto, temos um projeto StringLibrary que está fora da convenção. Vamos agora adicionar oStringLibrary projeto dentro do src pasta.

Na pasta src, temos dois projetos e precisamos corrigir o problema para que possamos usar todos os projetos corretamente. Vamos voltar ao Visual Studio e clicar com o botão direito do mouse no projeto StringLibrary e selecionar a opção Remover. Não o excluirá, mas apenas removerá o projeto.

Agora clique com o botão direito na pasta src e selecione Add → Existing Project…

Navegue até o projeto StringLibrary que agora está dentro do src pasta, selecione o StringLibrary.csproj arquivo e clique Open.

Agora temos que remover a referência de StringLibrary de project.json arquivo do aplicativo de console.

{ 
   "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" 
      } 
   } 
}

Salve as alterações e adicione uma referência de StringLibrary novamente em seu projeto de console.

{ 
   "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" 
      } 
   } 
}

Agora tudo deve estar funcionando novamente e você pode construir StringLibrary e depois FirstApp(projeto de console) sem nenhum erro. Vamos agora testar a funcionalidade StringLibrary usando xunit. Precisamos adicionar referência de StringLibrary em nosso projeto de teste. Clique com o botão direito do mouse no projeto References of StringLibraryTests e selecione Add Reference…

Clique OK que irá adicionar uma referência de StringLibraryao nosso projeto de teste. Vamos agora substituir o seguinte código noTests.cs Arquivo.

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()); 
      } 
   } 
}

Você pode ver que temos três métodos de teste que testarão a funcionalidade da StringLibrary. Vamos clicar noRun All link e você verá a seguinte saída no Test Explorer.

Você também pode executar os testes na linha de comando. Vamos abrir o prompt de comando e executar odotnet test comando.