正如标题所说,specflow如何处理this https://stackoverflow.com/questions/1996426/pass-multiple-optional-parameters-to-a-c-sharp-function
x = AddUp(2, 3)
x = AddUp(5, 7, 8, 2)
x = AddUp(43, 545, 23, 656, 23, 64, 234, 44)
我给出的链接是通常的做法。
我想知道的是顶部的注释应该是什么?
[Then(@"What should I write here")]
public static void AddUp(params int[] values)
{
int sum = 0;
foreach (int value in values)
{
sum += value;
}
return sum;
}
我不相信您可以拥有一个使用 param 数组作为specflow 中的参数类型的绑定并自动使用它。至少我从来没有使用过,也从未见过有人使用过。
您希望如何在功能文件中指定这一点?您已经给出了要调用的方法以及希望 Specflow 调用的步骤定义方法的示例,但没有给出您期望功能文件如何读取的示例。
我怀疑你会想做这样的事情
Given I want to add up the numbers 2,5,85,6,78
最终,specflow 会将其转换为字符串并调用方法。您必须自己进行从字符串到数字数组的转换,可能使用[StepArgumentTransformation]
像这样:
[StepArgumentTransformation]
public int[] ConvertToIntArray(string argument)
{
argument.Split(",").Select(x=>Convert.ToInt32(x)).ToArray();
}
然后您应该能够像这样定义您的步骤定义:
[Given(@"I want to add up the numbers (.*)")]
public static void AddUp(params int[] values)
{
int sum = 0;
foreach (int value in values)
{
sum += value;
}
return sum;
}
但说实话,此时你不需要params
bit, int[]
就足够了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)