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.

È stato utile?

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

http://www.nunit.com/index.php? p = testCase & r = 2.5.7

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) 
{ 
    ... 
} 
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top