我正在尝试在 Google 应用程序脚本上执行 BDD。我知道原则上我应该能够使用 Cucumber、Capybara 和 Mechanize 的某种组合在非 Rails 外部站点上执行 BDD。在本例中,我尝试测试我创建的 Google 应用程序脚本。
到目前为止,我已经获得了该项目的完整代码:
https://github.com/tansaku/GoogleAppScriptBDD
但是我目前陷入了这个错误:
rack-test requires a rack application, but none was given (ArgumentError)
我知道我不想使用机架,并且我一直在搜索论坛和堆栈溢出,到目前为止我最好的猜测是我的黄瓜环境文件中是这样的:
require 'capybara/cucumber'
Capybara.run_server=false
Capybara.current_driver = :mechanize
Capybara.app_host = 'https://script.google.com/macros/s/AKfycbytA2xBsaQ0_FSJXNkPVXQekBnWD4hXPOaCjCT00wo/dev'
这个帖子是相关的:
如何使用 Cucumber 测试非 Ruby、非 Rack API
但我想使用 Capybara,因为我正在测试 HTML 界面。另一种替代方案描述如下:
http://blogs.kent.ac.uk/webdev/2012/08/02/using-capybara-webkit-with-cucumber-without-rails-or-rack/
我一直在关注这里的讨论:
https://groups.google.com/group/cukes/browse_thread/thread/297163800eaf2968
然而,我真的很想了解如何关闭 Rack 的东西,并且我希望使用 mechanize 而不是上面提到的博客文章中描述的 webkit,因为我现在更了解 mechanize。
无论如何,这里有最佳实践吗,还是我只是继续尝试替代方案?
令人抓狂的是水豚的说明如下:https://github.com/jnicklas/capybara比如说:
如果您不使用 Rails,请将 Capybara.app 设置为您的机架应用程序:
水豚.app = MyRackApp
但这会生成一个不同的错误“未初始化的常量 Object::MyRackApp (NameError) ”,我不确定 MyRackApp 应该是什么,或者在哪里可以找到(我使用 ruby 时遇到的一般问题:-/ )正在通过黄瓜或水豚源来找出 MyRackApp 是什么?
不管怎样,我想我会在这里记录所有这些 - 非常感谢任何建议。我希望能够 BDD 我的谷歌应用程序脚本......