मैं है निम्न परीक्षण:पासिंग एकल मान 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();
}
पहले testcase (जाहिर है) निम्न त्रुटि के साथ विफल:
System.ArgumentException : Object of type 'System.String'
cannot be converted to type 'System.String[]'.
मैं testcase को बदलने के लिए करने की कोशिश की इस के साथ परिभाषा:
[TestCase(new[] { param1 })]
लेकिन अब मुझे निम्नलिखित संकलन त्रुटि मिलती है:
error CS0182: An attribute argument must be a constant expression, typeof expression or array creation expression of an attribute parameter type
अब मेरा समाधान 'एक पैरामीटर' केस को एक अलग परीक्षण विधि में ले जा रहा है।
फिर भी, क्या इस परीक्षा को दूसरों के समान चलाने के लिए कोई तरीका है?
आप एक ReSharper से लिंक मुद्दा, जबकि समस्या नुनिट में प्रतीत होती है ... किसी भी मामले में, लगता है कि resharper समस्या हल हो गई है – Noctis
इसे 'नया [] {...}' के साथ कर रहा है जहां सरणी स्ट्रिंग का है त्रुटि CS0182 द्वारा संदर्भित ऊपर ओपी। इंटीजर प्रकार ठीक से काम करते प्रतीत होते हैं। – Brandon