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