como-hacer-test-unitarios-de-metodos-internal-en-net

Cómo hacer test unitarios de métodos Internal en .NET

Uno de las problemáticas a la hora de realizar test unitarios en .NET es que es necesario que los métodos que queramos probar sean públicos.

Sin embargo, en muchas ocasiones, querremos aplicar test unitarios a métodos definidos como Internal. En este caso, no podremos realizar test unitarios.

Afortunadamente, podemos hacer que métodos Internal sean Public para ciertos ensamblados, que llamaremos “Friend Assemblies”.

Para ello, debemos editar el fichero del proyecto que queramos testear. Dentro añadiremos el siguiente renglón, sustituyendo ‘MyAssemblyTests’ por el nombre del ensamblaje del proyecto de Tests.

  <ItemGroup>
    <AssemblyAttribute Include="System.Runtime.CompilerServices.InternalsVisibleTo">
      <_Parameter1>MyAssemblyTests</_Parameter1>
    </AssemblyAttribute>
  </ItemGroup>

Por lo que, por ejemplo, el fichero de proyecto quedaría así.

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ItemGroup>
    <AssemblyAttribute Include="System.Runtime.CompilerServices.InternalsVisibleTo">
      <_Parameter1>MyAssemblyTests</_Parameter1>
    </AssemblyAttribute>
  </ItemGroup>
</Project>

Con esto conseguimos que los métodos Internal de nuestro proyecto serán públicos para el proyecto de Test, y podremos realizar Test unitarios sobre ellos.