attributo fila di MbUnit in NUnit?
-
02-10-2019 - |
Domanda
Durante la lettura di un esempio di codice Asp.Net MVC che ha utilizzato MbUnit come è Testing Framework, ho visto che era possibile eseguire una singola prova contro molteplici possibilità di ingresso utilizzando un attributo di fila, in questo modo:
[Test]
[Row("test@test_test.com")]
[Row("sdfdf dsfsdf")]
[Row("sdfdf@.com")]
public void Invalid_Emails_Should_Return_False(string invalidEmail)
{
...
}
Mi piacerebbe sapere se esiste un equivalente NUnit dell'attributo Row MbUnit, o comunque un modo elegante per raggiungere questo obiettivo in NUnit. Grazie.
Soluzione
penso che tu sia dopo l'attributo TestCase
[TestCase(12,3,4)]
[TestCase(12,2,6)]
[TestCase(12,4,3)]
public void DivideTest(int n, int d, int q)
{
Assert.AreEqual( q, n / d );
}
Altri suggerimenti
sequenziale attributo fa esattamente questo.
Il SequentialAttribute viene utilizzato su una prova a specificare che dovrebbe NUnit generare casi di test selezionando singoli dati previsti per il parametri del test, senza generando ulteriori combinazioni.
Nota: se i dati del parametro è fornito da più attributi, l'ordine in che NUnit utilizza gli elementi di dati non è garantita. Tuttavia, può essere dovrebbe rimanere costante per un proposta runtime e del sistema operativo.
Esempio Il seguente test sarà eseguito tre volte, nel seguente modo:
MyTest (1, "A")
MyTest (2, "B") MyTest (3, null)
[Test, Sequential]
public void MyTest(
[Values(1,2,3)] int x,
[Values("A","B")] string s)
{
...
}
Dato il tuo esempio, questo sarebbe diventato
[Test, Sequential]
public void IsValidEmail_Invalid_Emails_Should_Return_False(
[Values("test@test_test.com"
, "sdfdf dsfsdf"
, "sdfdf@.com")] string invalidEmail)
{
...
}