我正在尝试在 Google App Script 上执行 BDD。我知道原则上我应该能够使用 Cucumber、Capybara 和 Mechanize 的某种组合在非 Rails 外部站点上执行 BDD。在这种情况下,我正在尝试测试我创建的 Google App Script。
到目前为止,我已经在这个项目中获得了完整的代码:
https://github.com/tansaku/GoogleAppScriptBDD
但是我目前陷入此错误:
rack-test requires a rack application, but none was given (ArgumentError)
我知道我不想使用机架,我一直在搜索论坛和堆栈溢出,到目前为止,我最好的猜测是在我的黄瓜 env 文件中是这样的:
require 'capybara/cucumber'
Capybara.run_server=false
Capybara.current_driver = :mechanize
Capybara.app_host = 'https://script.google.com/macros/s/AKfycbytA2xBsaQ0_FSJXNkPVXQekBnWD4hXPOaCjCT00wo/dev'
这个 SO 帖子是相关的:
如何使用 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。
无论如何,这里有最佳实践,还是我只是继续尝试替代方案?
令人抓狂的是,这里的 Capybara 说明: https ://github.com/jnicklas/capybara 说:
如果您不使用 Rails,请将 Capybara.app 设置为您的机架应用程序:
Capybara.app = MyRackApp
但这会产生一个不同的错误“未初始化的常量 Object::MyRackApp (NameError)”,我不确定 MyRackApp 应该是什么,或者在哪里可以找到(我在使用 ruby 时遇到的一般问题:-/)我应该正在通过 cucumber 或 capybara 源来找出 MyRackApp 是什么?
无论如何,我想我会在这里记录所有这些 - 非常感谢任何建议。我希望能够 BDD 我的谷歌应用脚本......