Tengo el siguiente ensayo:Pasando único valor a params argumento en NUnit TestCase
[ExpectedException(typeof(ParametersParseException))]
[TestCase("param1")]
[TestCase("param1", "param2")]
[TestCase("param1", "param2", "param3", "optParam4", "optParam5", "some extra parameter")]
public void Parse_InvalidParametersNumber_ThrowsException(params string[] args)
{
new ParametersParser(args).Parse();
}
La primera TestCase (obviamente) falla con el siguiente error:
System.ArgumentException : Object of type 'System.String'
cannot be converted to type 'System.String[]'.
I tratado de sustituir el TestCase definición con éste:
[TestCase(new[] { param1 })]
pero ahora me sale el siguiente error de compilación:
error CS0182: An attribute argument must be a constant expression, typeof expression or array creation expression of an attribute parameter type
Mi solución por ahora es mover el caso de 'un parámetro' a un método de prueba diferente.
Aún así, ¿hay alguna manera de hacer que esta prueba funcione de la misma manera que las demás?
se vincula a un ReSharper problema, mientras que el problema parece estar en nunit ... en cualquier caso, parece que Resharper resolvió el problema – Noctis
Haciendo esto con 'new [] {...}' donde la matriz es de cadenas da el error CS0182 como se hace referencia por el OP arriba. Los tipos enteros parecen funcionar correctamente. – Brandon