2010-09-14 11 views
7

Mientras lee un ejemplo de código Asp.Net MVC que utiliza MbUnit ya que es marco de pruebas, vi que era posible ejecutar una sola prueba contra múltiples posibilidades de entrada mediante el uso de un atributo de la fila, así:Atributo de fila MbUnit en NUnit?

[Test] 
[Row("[email protected]_test.com")] 
[Row("sdfdf dsfsdf")] 
[Row("[email protected]")] 
public void Invalid_Emails_Should_Return_False(string invalidEmail) 
{ 
    ... 
} 

Me gustaría saber si hay un equivalente de NUnit del atributo Row de MbUnit o, de otro modo, una forma elegante de lograr esto en NUnit. Gracias.

Respuesta

10

Pienso que usted es después de que el atributo 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

+1

+1 - 'TestCaseAttribute' conduce a mucho más legible el código de prueba cuando se utilizan varios parámetros que el uso de' 'ValuesAttribute' con SequentialAttribute'. Solo usaría 'ValuesAttribute' si quisiera usar alguna combinación distinta a la especificada por' SequentialAttribute'. –

+0

+1 lo que dijo ... –

2

NUnits Sequential attribute hace exactamente eso.

El SequentialAttribute se utiliza en una prueba para especificar que NUnit debe generar casos de prueba seleccionando elementos de datos individuales previstas las parámetros de la prueba, sin generar combinaciones adicionales.

Nota: Si los datos de parámetros se proporciona por múltiples atributos, el orden en el que NUnit utiliza los elementos de datos no está garantizada. Sin embargo, puede esperarse que permanezca constante para un tiempo de ejecución dado y un sistema operativo .

Ejemplo El siguiente ensayo se ejecuta tres veces, como sigue:

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) 
{ 
    ... 
} 

Dada su ejemplo, esto se convertiría en

[Test, Sequential] 
public void IsValidEmail_Invalid_Emails_Should_Return_False(
    [Values("[email protected]_test.com" 
      , "sdfdf dsfsdf" 
      , "[email protected]")] string invalidEmail) 
{ 
    ... 
} 
Cuestiones relacionadas