C# 在xUnit中指定要进行单元测试的可变数量的参数,这些参数也具有固定的参数
我正在用xUnit编写一个单元测试,它接收很少的固定参数,外加数量可变的额外参数。测试的签名如下所示。从省略号开始,测试最多可以有20个参数C# 在xUnit中指定要进行单元测试的可变数量的参数,这些参数也具有固定的参数,c#,unit-testing,xunit,C#,Unit Testing,Xunit,我正在用xUnit编写一个单元测试,它接收很少的固定参数,外加数量可变的额外参数。测试的签名如下所示。从省略号开始,测试最多可以有20个参数 public async void MyTest(string ID, string count, string sid, string token, string domain, string expectedOutcome, ...) 我不能让它工作使用关键字,并根据链接,这将是不可能在不久的将来 此外,PropertyData和ClassData属
public async void MyTest(string ID, string count, string sid, string token, string domain, string expectedOutcome, ...)
我不能让它工作使用关键字,并根据链接,这将是不可能在不久的将来
此外,PropertyData和ClassData属性允许使用参数化测试,但是如果我采用这种方法,我必须将所有固定参数移动到与这些属性相关的代码中,而这不是一个选项,因为大多数测试甚至不会使用额外的参数
我还尝试将签名更改为以下内容
public async void MyTest(string ID, string count, string sid, string token, string domain, string expectedOutcome, List<string> parameters)
public async void MyTest(字符串ID、字符串计数、字符串sid、字符串令牌、字符串域、字符串预期输出、列表参数)
。。。但是当我构建时,在初始化InlineData属性中的列表的代码行中会出现错误:
属性参数必须是常量表达式,typeof表达式
或属性参数类型的数组创建表达式
有没有一种优雅的方法?到目前为止,我已经硬编码了几个集合作为类变量,对应于这些额外的参数。但是在每次运行之前,我必须手动更改单元测试代码中要使用的集合。由于我仍在开发中,目前这不是一个问题,但当我必须部署测试时,这将是一个问题