¿Cómo realizar pruebas de todas las combinaciones de parámetros en DataRows?
Supongamos que tengo un método de prueba como este:
[TestMethod]
[DataRow( 0, 0, 0 )]
[DataRow( 0, 0, 1 )]
[DataRow( 0, 1, 0 )]
[DataRow( 0, 1, 1 )]
[DataRow( 1, 0, 0 )]
[DataRow( 1, 0, 1 )]
[DataRow( 1, 1, 0 )]
[DataRow( 1, 1, 1 )]
public void PruebaGenial( int a, int b, int c )
{
// algún código de prueba realmente genial que utiliza a, b y c
}
Esto prueba todas las combinaciones de a, b y c que sean iguales a 0 o 1. ¡Solo dos valores en tres parámetros y se necesitan 8 líneas de DataRow
!
Lo que realmente me encantaría hacer es algo como esto:
[TestMethod]
[DataMatrix( {0,1}, {0,1}, {0,1} )]
public void PruebaGenial( int a, int b, int c )
{
// algún código de prueba realmente genial que utiliza a, b y c
}
Me gustaría especificar algunos valores para cada parámetro y que se prueben todas las combinaciones. ¿Existe algo así utilizando MS Test?
Nota: Soy consciente del atributo DataSource
. Sin embargo, me gustaría tener los valores en el código y no en un archivo externo.
davy.ai
Desafortunadamente, no hay un atributo incorporado en MSTest que pueda lograr el comportamiento que estás describiendo. El atributo
DataRow
es actualmente la mejor solución para probar todas las combinaciones de valores para múltiples parámetros en MSTest.Sin embargo, puedes crear un atributo personalizado que logre lo que estás buscando. Podrías crear un atributo
DataMatrix
que tome matrices de longitud variable y genere todas las combinaciones de valores para los parámetros. Aquí tienes un ejemplo de implementación:Este atributo toma en cuenta matrices de valores de longitud variable para cada parámetro y genera todas las combinaciones posibles de esos valores. Puedes utilizar este atributo personalizado de la siguiente manera:
Esto generará 8 pruebas, probando todas las combinaciones de
a
,b
yc
iguales a 0 o 1.</object[]>