我在xUnit中编写一个单元测试,它接收几个固定参数,加上可变数量的额外参数。测试的签名将如下所示。从省略号开始,测试可以有更多20个参数。
public async void MyTest(string ID, string count, string sid, string token, string domain, string expectedOutcome, ...)
我无法使用params关键字使其运作,并且根据this链接,在不久的将来,这是不可能的。
此外,PropertyData和ClassData属性允许使用variable number of parameters对测试进行参数化,但是如果我采用这种方法,我将必须将所有固定参数移动到与这些属性相关的代码,并且&# 39;不是一个选项,因为大多数测试甚至不会使用额外的参数。
我还尝试将签名更改为以下内容......
public async void MyTest(string ID, string count, string sid, string token, string domain, string expectedOutcome, List<string> parameters)
...但是当我构建时,我在代码行中出现错误,我在InlineData属性中初始化列表:
属性参数必须是常量表达式,typeof表达式 或属性参数类型
的数组创建表达式
有一种优雅的方式吗?到目前为止,我已经将几个集合硬编码为类变量,对应于这些额外的参数。但是我必须在每次运行之前手动更改单元测试代码中使用的集合。由于我还在开发,目前这不是问题,但是我将不得不部署测试。