Tôi đã kiểm tra sau:Đi qua giá trị duy nhất để params luận trong 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();
}
Các TestCase đầu tiên (rõ ràng) không thành công với các lỗi sau:
System.ArgumentException : Object of type 'System.String'
cannot be converted to type 'System.String[]'.
tôi đã cố gắng để thay thế TestCase định nghĩa với điều này:
[TestCase(new[] { param1 })]
nhưng bây giờ tôi gặp lỗi biên dịch sau:
error CS0182: An attribute argument must be a constant expression, typeof expression or array creation expression of an attribute parameter type
Giải pháp của tôi bây giờ là chuyển trường hợp 'một thông số' sang một phương pháp thử khác.
Tuy nhiên, có cách nào để thử nghiệm này chạy giống như cách khác không?
Bạn liên kết đến một resharper vấn đề, trong khi vấn đề có vẻ là nunit ... trong mọi trường hợp, có vẻ như resharper giải quyết vấn đề – Noctis
Làm điều này với 'new [] {...}' trong đó mảng là của chuỗi cung cấp cho lỗi CS0182 như được tham chiếu bởi OP ở trên. Các kiểu số nguyên dường như hoạt động bình thường. – Brandon