2016-09-06 31 views
0

我遇到了一个场景,我必须从specflow功能文件发送一个整数数组作为参数。我可以使用我不想做的表格,因为我已经发送了row []或col []。如果我通过参数作为一个字符串如何在Specflow(BDD)中正确使用StepArgumentTransformation?

例如:给定的值作为“470471472472”

,并接受它,并在步骤定义文件不分裂。 StepArgumentTransformation与上述场景有何不同?使用步进参数转换还有其他好处吗?我知道我们可以转换XML,日期或任何对象。为什么我们必须使用stepargumenttransformation?

回答

2

我希望我能正确理解这个问题。

Specflow支持一些自动转换开箱即用,所以像转换为DateDoubleint等等等等,它在默认情况下做这些,因为没有关于他们的歧义。您可以轻松地将字符串转换为doubleDate,因为您知道所用的语言环境。

为什么不转换为数组支持?我想这可能是,但有一些含糊不清。列表分隔符应该是什么?一个逗号?将区域设置用作数字整体和小数部分之间的分隔符的区域设置是什么?

因此,提供一个将列表转换为int[]IEnumerable<int>的默认实现可能是可能的,但它可能会让一些人问他们为什么在他们使用☃作为列表分隔符时不起作用。

最好将个别事物模糊地留给个人实施,而不要猜测最佳实施。

您需要的StepArgumentTransformation编写起来非常简单,如果您想在多个项目中共享,可以将其包含在外部步骤装配中。

所以回答你很多问题:

这不是真的有什么不同,只是对其进行封装,在一个地方,这是很好的做法,这是一个好处。

是的,你可以转换任何对象。

您不必使用StepArgumentTransformation,很多人不这样做,但恕我直言,他们让你的生活变得更轻松

+0

我实现了在不使用StepArgumentTransformation,Specflow本身转变串,从功能文件整数参数。我没有在外部步骤程序集中尝试StepArgumentTransformation,通常也是这样。我试着让你知道..谢谢你的解释和宝贵的时间。 :) – karthikR