Estoy escribiendo algunas pruebas de NUnit para las operaciones de la base de datos. Obviamente, si Add()
falla, entonces Get()
también fallará. Sin embargo, parece engañoso cuando Add()
y Get()
fallan porque parece que hay dos problemas en lugar de uno solo.¿Cómo ignoro una prueba basada en otra prueba en NUnit?
¿Hay alguna manera de especificar un 'orden' para que se ejecuten las pruebas, en caso de que si la primera prueba falla, se ignoren las siguientes pruebas?
En la misma línea, ¿hay alguna forma de solicitar las clases de prueba unitaria? Por ejemplo, me gustaría ejecutar mis pruebas para las operaciones básicas de la base de datos antes de las pruebas para datos de ida y vuelta desde la interfaz de usuario.
Nota: Esto es un poco diferente al hecho de que las pruebas dependen unas de otras, es más como asegurarse de que algo funciona antes de ejecutar una serie de pruebas. Es una pérdida de tiempo, por ejemplo, ejecutar un montón de operaciones de base de datos si no puede obtener una conexión a la base de datos en primer lugar.
Editar: Parece que algunas personas están perdiendo el punto. No estoy haciendo esto:
[Test]
public void AddTest()
{
db.Add(someData);
}
[Test]
public void GetTest()
{
db.Get(someData);
Assert.That(data was retrieved successfully);
}
Más bien, yo estoy haciendo esto:
[Test]
public void AddTest()
{
db.Add(someData);
}
[Test]
public void GetTest()
{
// need some way here to ensure that db.Add() can actually be performed successfully
db.Add(someData);
db.Get(somedata);
Assert.That(data was retrieved successfully);
}
En otras palabras, quiero asegurar que los datos se pueden añadir en primer lugar antes de que pueda prueba si se puede recuperar. La gente está asumiendo que estoy usando datos de la primera prueba para pasar la segunda prueba cuando este no es el caso. Estoy tratando de asegurar que una operación sea posible antes de intentar otra que dependa de ella.
Como ya he dicho, debe asegurarse de obtener una conexión con la base de datos antes de ejecutar las operaciones de la base de datos. O que puede abrir un archivo antes de realizar operaciones de archivos. O conéctese a un servidor antes de probar las llamadas API. O ... entiendes el punto.
¡La respuesta aceptada es ** incorrecta **! Ver los comentarios – Graviton