【发布时间】:2022-01-03 13:00:08
【问题描述】:
问题描述
我在使用 Ruby 创建 Cucumber 自动化时遇到了“问题”。我的终端在 .feature 场景步骤之前显示 .rb 步骤,这对于可读性来说真的很烦人。
Information
Ruby: 3.0.3p157
Terminal: Git 2.34.1
Cucumber: 7.1.0
我的功能文件包含:
@home_screen
Feature: Tests for home screen functionality
@default
Scenario: Default values on home screen is Foot and Centimeter
Given I land on the home screen
Then left unit picker value should be 'Foot'
And right unit picker value should be 'Centimeter'
Scenario: Show All button should be enabled at launch
Given I land on home screen
Then the Show All button is enabled
When I press on Clear button
Then the Show All button is disabled
@conversions
Scenario Outline: Verify default conversions
Given I land on home screen
When I type <target> to target field
Then I should should see <result> as the result
Examples:
| target | result |
| 1 | 12 |
| 2 | 24 |
| 3 | 36 |
| 9 | 106 |
我的步骤定义包含:
Given('I land on home screen') do
puts 'I am at the home screen'
end
Then('left unit picker value should be {string}') do |string|
puts "left unit picker value is #{string}"
end
And('right unit picker value should be {string}') do |string|
puts "right unit picker value is #{string}"
end
When('I press on Clear button') do
puts 'Clear button is pressed'
end
When('I type {int} to target field') do |target|
puts "Target is: #{target}."
end
Then(/the Show All button is (enabled|disabled)/) do |state|
state == 'enabled' ? puts('Button is enabled') : puts('Button is disabled')
end
Then('I should should see {int} as the result') do |result|
puts "Result is: #{result}."
end
一个场景的终端执行
预期输出
感谢您的宝贵时间!
【问题讨论】:
-
好吧,你的步骤定义是
puts,所以你真的告诉打印这些消息,它没有显示步骤,它正在打印你告诉它打印的消息。您还期望这里有什么? -
您好,我期待 Given/When/Then 按预期在 put 之前出现。我是红宝石和黄瓜的新手,所以我不确定你的意思,但我想这样输出:鉴于我登陆主屏幕/我在主屏幕我无法格式化评论,但给定的应该在看跌之前来
-
puts是在屏幕上打印消息的命令,这就是正在发生的事情。您的步骤没有做任何事情 - 根本没有与其中的页面交互。我假设这些puts是临时占位符,您通常不会打印到测试的输出 -
是的,它只是一个用于学习的占位符,但是黄瓜步骤仍然应该首先显示,因为它更符合逻辑,此外,我正在学习的课程显示输出的正确顺序,比如所以:i.stack.imgur.com/fZQKp.png 为了以防万一,我一个字一个字地跟着课程的代码,它们的输出顺序不同
-
我不会说它更合乎逻辑 - 步骤是否在开始时显示与结束时显示是不同的。我认为后者更合乎逻辑,因为您无法知道该步骤在完成之前是否成功(因此您还不知道如何实际打印它)。教程的问题在于它们没有更新,而软件和库是。现在,只需忽略这一点并专注于更重要的事情,例如实际实施这些步骤或针对/反对黄瓜的原因。
标签: ruby automated-tests cucumber output bdd