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)
私はラックを使用したくないことを知っており、フォーラムとスタック オーバーフローを検索してきました。
require 'capybara/cucumber'
Capybara.run_server=false
Capybara.current_driver = :mechanize
Capybara.app_host = 'https://script.google.com/macros/s/AKfycbytA2xBsaQ0_FSJXNkPVXQekBnWD4hXPOaCjCT00wo/dev'
このSO投稿は関連しています:
Ruby 以外、Rack 以外の API をテストするために Cucumber を使用する方法
しかし、HTML インターフェイスをテストしているので、Capybara を使用したいと思います。別の方法を次に示します。
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
しかし、ラックをオフにする方法を本当に理解したいと思っています。また、上記のブログ投稿で説明されている webkit ではなく、mechanize を使用することを望んでいました。
とにかく、ここにベストプラクティスがありますか、それとも代替案を試し続けるだけですか?
ちょっと腹立たしいのは、ここのカピバラの指示: https://github.com/jnicklas/capybaraが次のように 言っていることです:
Rails を使用していない場合は、Capybara.app をラック アプリに設定します。
Capybara.app = マイラックアプリ
しかし、それは別のエラー「 uninitialized constant Object::MyRackApp (NameError) 」を生成し、 MyRackApp がどうあるべきか、またはどこで見つけるべきかわかりません(ルビーで作業している一般的な問題:-/ )キュウリやカピバラのソースを調べて、MyRackApp とは何かを調べていますか?
とにかく、ここにすべてを文書化すると思いました-どんな提案でも大歓迎です。Google アプリのスクリプトを BDD できるようにしたいのですが...