gpt4 book ai didi

ruby - 如何用表格在 cucumber 步内写表格

转载 作者:太空宇宙 更新时间:2023-11-03 16:02:24 24 4
gpt4 key购买 nike

我在给QA工程师写场景,现在遇到一个步骤封装这样的问题。

这是我的场景:


When I open connection
And device are ready to receive files
I send to device file with params:
| name | ololo |
| type | txt |
| size | 123 |

所有的每一步对人们来说都很重要,他们会使用我的步骤。我需要自动执行这些步骤并重复 100 次。所以我决定创建新步骤,运行它 100 次。

  1. 第一个变体是创建包含其他步骤的步骤,例如:

Then I open connection, check device are ready and send file with params 100 times:
| name | ololo |
| type | txt |
| size | 123 |

但是这个版本不合适,因为:

  • 使用它的人不会理解其中执行了哪些步骤
  • 有时这样的步骤名称很长

    1. 第二种变体是在参数表中创建包含其他步骤的步骤:

I execute following steps 100 times:
| When I open connection |
| And device are ready to receive files |
| I send to device file |

人们会很容易理解,他们会使用我的步骤和场景。

但我也有一些带参数的步骤,

我需要创建类似两层表的东西:


I execute following steps 100 times:
| When I open connection |
| And device are ready to receive files |
| I send to device file with params: |
| | name | ololo | |
| | type | txt | |
| | size | 123 | |

在我的情况下,这是最好的变体。 但是因为 Cucumber 无法正确解析它(它不像 Cucumber 代码那样正确)。

如何修复步骤的最后一个示例? (用粗体标出)

cucumber 有没有什么乐器,对我有帮助?

您能推荐一些建议您的解决方案类型吗?

有人遇到过类似的问题吗?

最佳答案

我决定改变符号“|”参数表中的“/”,在里面。它并不完美,但它确实有效:

这是场景步骤:


I execute following steps 100 times:
| I open connection |
| device are ready to receive files |
| I send to device file with params: |
| / name / ololo / |
| / type / txt / |
| / size / 123 / |

这是步骤定义:


And /^I execute following steps (.*) times:$/ do |number, table|

data = table.raw.map{ |raw| raw.last }
number.to_i.times do
params = []
step_name = ''
data.each_with_index do |line,index|
next_is_not_param = data[index+1].nil? || ( data[index+1] && !data[index+1].include?('/') )
if !line.include?('/')
step_name = line
#p step_name if next_is_not_param
step step_name if next_is_not_param
else
params += [line.gsub('/','|')]
if next_is_not_param
step_table = Cucumber::Ast::Table.parse( params.join("\n"), nil, nil )
#p step_name
#p step_table
step step_name, step_table
params = []
end
end
end
#p '---------------------------------------------------------'
end
end

关于ruby - 如何用表格在 cucumber 步内写表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21679644/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com