我目前正在使用Frank with Cucumber在iOS应用上自动化测试。 一切都按预期工作,我可以对应用程序进行Frankify,运行它等等.Symbote可以像Cucumber一样工作。我已经编写了许多测试步骤,完全按照我的意图工作。我的所有步骤都是用Ruby编写的。
我的问题是,因为一切正常,我希望能够有一个接受输入的步骤。我以为我可以使用获取模块,但由于某种原因,它不会等待任何用户输入,我只看到功能失败后提示工作。 这是该步骤的代码:
When(/^I verify the device via text$/) do
print "What's the Verify link?"
link_to_app = gets.chomp
sleep 20
press_home_on_simulator
sleep 1
# for this next part you're gonna need this link:
# https://github.com/moredip/Frank/issues/177
# It's used to go out of the app and open an html doc in safari
html_format = "<!DOCTYPE HTML><html><head><title></title><meta http-equiv=\"refresh\" content=\"0;URL='#{link_to_app}'\"></head><boßdy></body></html>"
html = html_format
require 'tempfile'
file = Tempfile.new(['launch', '.html'])
begin
file.write(html)
%x( /usr/bin/open "#{file.path}" -a "iPhone Simulator" )
ensure
file.close
file.unlink
end
sleep 2
end
这基本上是为了获取一个只能从SMS文本中获取的链接,并允许我自动转到模拟器中的该链接(这用于在应用程序中进行帐户验证)。 正如我之前所说的,它不是提示停止并等待任何输入,而是简单地跳过。
基本上,在使用Frank和Cucumber时,如何让gets模块工作并为我提供输入?
谢谢
答案 0 :(得分:0)
尝试使用STDIN.gets,而不是普通的旧获取