cod*_*sed 8 .net c# nunit unit-testing
我想使用NUnit Test传递不同的测试参数.
我可以传递整数数组,没问题,但是当我传递字符串数组时它不起作用.
[TestCase(new[] { "ACCOUNT", "SOCIAL" })]
public void Get_Test_Result(string[] contactTypes)
{
}
错误3属性参数必须是属性参数类型的常量表达式,typeof表达式或数组创建表达式...\ContactControllerTests.cs 78 13 UnitTests
当我使用字符串数组作为第二个参数时,它可以工作.
那是什么原因?
[TestCase(0, new[] {"ACCOUNT", "SOCIAL"})]
public void Get_Test_Result(int dummyNumber, string[] contactTypes)
{
}
小智 5
正如 km 所说,我相信编译错误是重载解析和数组协方差的结果,并且强制转换为对象的建议对我不起作用。
但是,指定参数名称(在 TestCaseAttribute 的情况下为 arg)可以修复重载解析中的混淆,因为您正在准确指定所需的重载:
[TestCase(arg:new string[]{"somthing", "something2"})]
这对我来说是编译和工作的。
考虑执行以下操作
[TestCase("ACCOUNT", "SOCIAL")]
public void Test1()
{
}
不确定你的测试是否与我的类似。但我通过以下测试得到了预期的结果
[TestFixture]
public class TestCaseTest
{
  [TestCase("ACCOUNT","SOCIAL")]
  public void Get_Test_Result(String a, String b)
  {
    Console.WriteLine("{0},{1}",a,b);   
  }
}
结果

此外,如果您想要对TestCaseAttribute进行一些引用
| 归档时间: | 
 | 
| 查看次数: | 1080 次 | 
| 最近记录: |