visual unit test studio practices net ejemplo best c# nunit

c# - studio - NUnit Test con una matriz de valores



unit test.net core (2)

Estoy tratando de usar NUnit con el atributo de valores para poder especificar muchas entradas diferentes sin tener 100 pruebas separadas.

Sin embargo, ahora me estoy dando cuenta de que hay ocasiones en las que quiero usar el mismo conjunto de entradas, pero en pruebas muy diferentes, como a continuación.

¿Hay alguna manera de que pueda especificar todos los valores en un lugar, como una matriz y usar la matriz para cada atributo de valores?

Quiero asegurarme de que la prueba se ejecute como 100 pruebas individuales, en lugar de 1 prueba que ejecute 100 valores.

He buscado en la documentación de Nunit, pero no puedo encontrar una manera de lograr esto. ¿Algunas ideas?

Código:

[Test] public void Test1([Values("Value1", "Value2", "Value3", ... "Value100")] string value) { //Run Test here } [Test] public void Test2([Values("Value1", "Value2", "Value3", ... "Value100")] string value) { //Run Test here } [Test] public void Test3([Values("Value1", "Value2", "Value3", ... "Value100")] string value) { //Run Test here }


Puede usar FactoryAttribute en el método de prueba en lugar de ValuesAttribute en param. Lea más sobre esto here .

Edición: derechos de Alexander. FactoryAttribute era parte temporal de la API. La forma correcta es usar TestCaseSourceAttribute


TestCaseSource atributo TestCaseSource es adecuado aquí.

Ver ejemplo:

private string[] commonCases = { "Val1", "Val2", "Val3" }; [Test] [TestCaseSource(nameof(commonCases))] public void Test1(string value) { .... } [Test] [TestCaseSource(nameof(commonCases))] public void Test12(string value) { .... }