Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在Specflow(BDD)中正确使用StepArgumentTransformation?_C#_Selenium_Bdd_Specflow - Fatal编程技术网

C# 如何在Specflow(BDD)中正确使用StepArgumentTransformation?

C# 如何在Specflow(BDD)中正确使用StepArgumentTransformation?,c#,selenium,bdd,specflow,C#,Selenium,Bdd,Specflow,我遇到了一个场景,其中我必须从specflow功能文件发送一个整数数组作为参数。我可以使用我不想使用的表,因为我已将其作为行[]或列[]发送。如果我将参数作为字符串传递 例如:给定设置值为“470472472” 并接收它并在步骤定义文件中进行拆分。StepArgumentTransformation与上述场景有多大不同?是使用阶跃参数转换的任何其他好处。我知道我们可以转换XML、日期或任何对象。为什么我们必须使用STEP转换 我希望我正确理解了这个问题 Specflow支持一些开箱即用的自动转换

我遇到了一个场景,其中我必须从specflow功能文件发送一个整数数组作为参数。我可以使用我不想使用的表,因为我已将其作为行[]或列[]发送。如果我将参数作为字符串传递

例如:给定设置值为“470472472”


并接收它并在步骤定义文件中进行拆分。StepArgumentTransformation与上述场景有多大不同?是使用阶跃参数转换的任何其他好处。我知道我们可以转换XML、日期或任何对象。为什么我们必须使用STEP转换

我希望我正确理解了这个问题

Specflow支持一些开箱即用的自动转换,因此可以转换为
Date
Double
int
等,默认情况下,它会这样做,因为它们没有歧义。您可以轻松地将字符串转换为
double
Date
,因为您知道所使用的语言环境

为什么不支持转换为阵列?我想可能是的,但有一些模棱两可的地方。列表分隔符应该是什么?逗号?那么使用它作为数字的整数和小数部分之间的分隔符的区域设置呢

因此,提供将列表转换为
int[]
IEnumerable
的默认实现是可能的,但很可能会让一些人问,当他们使用了☃ 作为列表分隔符

最好将模棱两可的事情留给个人去实现,而不是猜测最好的实现

您想要的StepArgumentTransformation非常容易编写,如果您想在多个项目中共享它,可以将其包含在外部step程序集中

因此,要回答您的许多问题:

这其实没有什么不同,它只是把它封装在一个地方,这是一个很好的实践,这是一个好处

是的,您可以转换任何对象


你不必使用StepArgumentTransformation,很多人都不需要,但我希望我能正确理解这个问题,因为它们能让你的生活更轻松

Specflow支持一些开箱即用的自动转换,因此可以转换为
Date
Double
int
等,默认情况下,它会这样做,因为它们没有歧义。您可以轻松地将字符串转换为
double
Date
,因为您知道所使用的语言环境

为什么不支持转换为阵列?我想可能是的,但有一些模棱两可的地方。列表分隔符应该是什么?逗号?那么使用它作为数字的整数和小数部分之间的分隔符的区域设置呢

因此,提供将列表转换为
int[]
IEnumerable
的默认实现是可能的,但很可能会让一些人问,当他们使用了☃ 作为列表分隔符

最好将模棱两可的事情留给个人去实现,而不是猜测最好的实现

您想要的StepArgumentTransformation非常容易编写,如果您想在多个项目中共享它,可以将其包含在外部step程序集中

因此,要回答您的许多问题:

这其实没有什么不同,它只是把它封装在一个地方,这是一个很好的实践,这是一个好处

是的,您可以转换任何对象


你不必使用StepArgumentTransformation,很多人都不需要,但我想它们可以让你的生活更轻松

我在没有使用StepArgumentTransformation的情况下实现了,Specflow本身可以从功能文件中转换字符串、整数参数。我没有在外部步骤程序集中尝试过StepArgumentTransformation,通常也没有。我试着让你知道。。感谢您的解释和宝贵的时间。:)我没有使用StepArgumentTransformation实现,Specflow本身从功能文件转换字符串、整数参数。我没有在外部步骤程序集中尝试过StepArgumentTransformation,通常也没有。我试着让你知道。。感谢您的解释和宝贵的时间。:)