Mam następujący test:Przechodząc pojedyncza wartość params argumentu w 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();
}
Pierwszy TestCase (oczywiście) nie powiedzie się z powodu następującego błędu:
System.ArgumentException : Object of type 'System.String'
cannot be converted to type 'System.String[]'.
Próbowałem wymienić TestCase definicja z tym:
[TestCase(new[] { param1 })]
, ale teraz pojawia się następujący błąd kompilacji:
error CS0182: An attribute argument must be a constant expression, typeof expression or array creation expression of an attribute parameter type
Moje rozwiązanie na razie przenosi przypadek "jednego parametru" do innej metody testowania.
Nadal czy istnieje sposób, aby ten test przebiegał tak samo jak inne?
umieścić na niej link do Resharper problem, podczas gdy problem wydaje się być w nunit ... w każdym razie wydaje się, jak resharper rozwiązał problem – Noctis
Robiąc to z 'new [] {...}', gdzie tablica jest z ciągów znaków, pojawia się błąd CS0182, do którego odwołuje się OP powyżej. Typy całkowite wydają się działać poprawnie. – Brandon