Sto scrivendo alcuni test NUnit per le operazioni di database. Ovviamente, se Add()
fallisce, allora anche Get()
avrà esito negativo. Tuttavia, sembra ingannevole quando entrambi gli errori Add()
e Get()
falliscono perché sembra che ci siano due problemi invece di uno solo.Come si ignora un test basato su un altro test in NUnit?
Esiste un modo per specificare un 'ordine' per le prove per l'esecuzione in, nel senso che se il primo test ha esito negativo, i seguenti test vengono ignorati?
Nella stessa riga, c'è un modo per ordinare le classi di test dell'unità? Ad esempio, vorrei eseguire i miei test per le operazioni di base del database prima dei test per i dati round-trip dall'interfaccia utente.
Nota: Questo è un po 'diverso che avere le prove dipendono l'uno dall'altro, è più come far sì che qualcosa funziona prima prima di eseguire una serie di test. È una perdita di tempo, ad esempio, eseguire una serie di operazioni di database se non è possibile ottenere una connessione al database in primo luogo.
Modifica: Sembra che ad alcune persone manchi il punto. Non sto facendo questo:
[Test]
public void AddTest()
{
db.Add(someData);
}
[Test]
public void GetTest()
{
db.Get(someData);
Assert.That(data was retrieved successfully);
}
Piuttosto, sto facendo questo:
[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);
}
In altre parole, voglio garantire che i dati possono essere aggiunti in primo luogo prima che io possa verificare se può essere recuperato. Si presume che io stia utilizzando i dati del primo test per passare il secondo test quando non è così. Sto cercando di assicurarmi che una sola operazione sia possibile prima di tentarne un'altra che dipende da essa.
Come ho detto già, è necessario assicurarsi che si può ottenere una connessione al database prima di eseguire operazioni di database. O che puoi aprire un file prima di eseguire operazioni sui file. Oppure connettiti a un server prima di testare le chiamate API. O ... hai capito il punto.
La risposta accettata è ** errata **! Vedi i commenti – Graviton