Primeros pasos con nunit

Por qué no puedes usar Assert.Equals

Alguna vez se preguntó por qué no puede usar Assert.Equals() tanto para Nunit como para MSTest. Si no lo ha hecho, tal vez para empezar deba tener en cuenta que no puede usar este método. En su lugar, usaría Assert.AreEqual() para comparar la igualdad de dos objetos.

La razón aquí es muy simple. Como cualquier clase, la clase Assert hereda de System.Object que tiene un método Equals virtual público destinado a verificar si un objeto dado es igual al objeto actual. Por lo tanto, llamar a ese método equals sería un error, ya que en una prueba unitaria compararía dos objetos que no tienen nada que ver con la clase Assert. Como resultado, Nunit y MSTest optaron por proporcionar un método Assert.AreEqual para ese fin.

Además, para asegurarse de que no utilice el método Equals por error, han decidido lanzar Exceptions para advertirle si lo usa por error.

Implementación de Nunit:

        [EditorBrowsable(EditorBrowsableState.Never)]
    public static new bool Equals(object a, object b)
    {
        // TODO: This should probably be InvalidOperationException
        throw new AssertionException("Assert.Equals should not be used for Assertions");
    }

Atributo de caso de prueba

[TestCase(0, 0, 0)]
[TestCase(34, 25, 59)]
[TestCase(-1250, 10000, 8750)]
public void AddNumbersTest(int a, int b, int expected)
{
    // Act
    int result = a + b;
            
    // Assert
    Assert.That(result, Is.EqualTo(expected));
}

Prueba AddNumbers superada

Instalación usando NuGet

Install-Package NUnit

Este paquete incluye todos los ensamblajes necesarios para crear pruebas unitarias.

Las pruebas se pueden ejecutar usando uno de los siguientes métodos:

  • Ventana de prueba de unidad de Visual Studio
  • Corredor de consola
  • Corredor de terceros compatible con NUnit 3

Ventana de prueba de unidad de Visual Studio

Para ejecutar pruebas usando la ventana de prueba de unidad de Visual Studio, instale el adaptador de prueba NUnit 3. https://visualstudiogallery.msdn.microsoft.com/0da0f6bd-9bb6-4ae3-87a8-537788622f2d

Corredor de consola

Instale NUnit Console Runner a través de NuGet

Install-Package NUnit.Console

El ejecutable nunit3-console.exe se encuentra en packages\NUnit.3.X.X\tools

Hola Mundo

[TestFixture]
public class UnitTest1
{
    class Message
    {
        public string Text { get; } = "Hello World";
    }

    [Test]
    public void HelloWorldTest()
    {
        // Act
        var message = new Message();

        // Assert
        Assert.That(message.Text, Is.EqualTo("Hello World"));
    }
}

Prueba Hola Mundo