У меня есть следующий тест:
[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();
}
Первый TestCase (очевидно) завершается со следующей ошибкой :
System.ArgumentException : Object of type 'System.String'
cannot be converted to type 'System.String[]'.
Я попытался заменить определение TestCase этим:
[TestCase(new[] { param1 })]
но теперь я получаю следующую ошибку компиляции:
ошибка CS0182: Аргумент атрибута должен быть константным выражением, выражением typeof или выражением создания массива атрибут тип параметра
Мое решение на данный момент заключается в переносе случая с одним параметром на другой метод тестирования.
Тем не менее, есть ли способ заставить этот тест работать так же, как и другие?