在xUnit中为单元测试指定可变数量的参数,同时还具有固定参数

时间:2015-12-22 09:46:11

标签: c# unit-testing xunit

我在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表达式   或属性参数类型

的数组创建表达式

有一种优雅的方式吗?到目前为止,我已经将几个集合硬编码为类变量,对应于这些额外的参数。但是我必须在每次运行之前手动更改单元测试代码中使用的集合。由于我还在开发,目前这不是问题,但是我将不得不部署测试。

0 个答案:

没有答案