問題タブ [cucumber]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
11 に答える
17503 参照

ruby-on-rails - キュウリの物語を持つセッション変数

私はいくつかのステップがある「サインアップ」アプリケーションのためにいくつかのキュウリの物語に取り組んでいます。

それから、すべてのステップを一度にカバーするためにHuuuuuuugeストーリーを書くのではなく、それは悪いことですが、私は通常のユーザーのようにコントローラーの各アクションを実行したいと思います。ここでの私の問題は、最初のステップで作成されたアカウントIDをセッション変数として保存しているため、ステップ2、ステップ3などにアクセスすると、既存の登録データが読み込まれることです。

controller.session[..]RSpec仕様内でアクセスできることは知っていますが、Cucumberストーリーでこれを実行しようとすると、次のエラーで失敗します(また、これはアンチパターンなどです...):

controller.session [:whatever]またはsession [:whatever]を使用する

session(:whatever)を使用する

したがって、セッションストアへのアクセスは実際には不可能のようです。私が疑問に思っているのは、それが可能かどうかです(そして、どちらが最善かと思います..):

  1. セッションストアなどをモックアウトする
  2. コントローラ内にメソッドを持ち、それをスタブします(たとえばget_registration、インスタンス変数を割り当てます...)

私はRSpecの本を(よく、スキミングして)調べ、WebRatなどを調べましたが、私の問題に対する答えは実際には見つかりませんでした...

もう少し明確にするために、サインアッププロセスはステートマシンのようなものです-たとえば、ユーザーは登録が完了する前に4つのステップを進めます-したがって、「ログイン」は実際にはオプションではありません(サイトの動作モデルを壊します) )..。

コントローラーの仕様では、セッション変数に基づいてモデルをロードするメソッドの呼び出しをスタブ化することができましたが、「アンチパターン」行がモックだけでなくスタブにも適用されるかどうかはわかりませんか?

ありがとう!

0 投票する
1 に答える
1330 参照

ruby-on-rails - キュウリ:railsdynamicfindがpaths.rbで機能しない

私はrspec、rspec-rails、cucumber、webratを使用してレールに取り組んでいます。私はBDDとテスト全般を学ぼうとしています。私はこのようなキュウリのシナリオを持っています:

クイズを正しく作成して保存する手順1を追加しました(プットでテストしました)。現在、ステップ2に取り組んでいます。paths.rbに新しいパスを追加しています

何らかの理由find_by_titleで動作しません。このエラーメッセージが表示されます:

レコードがそこにあり、正しく保存されていると確信しています。挿入すれば

「パールジャム」が出ます。キュウリで生成されたファイルに次の例が含まれているため、機能していないように見えfind_byます。これは非常に奇妙です。

また、条件を使用して最初に簡単な検索を試しましたが、どちらも機能しません。

何か案が?

よろしくお願いします、
Davide

0 投票する
2 に答える
600 参照

ruby-on-rails - スキーマのロードではなくキュウリの移行を実行する

たとえば、users テーブルの作成時にデフォルト ユーザーが作成され、foos テーブルの作成時に特定のユーザー ロール (foo_admin など) が作成されます。

問題は、キュウリがスキーマのロードを行うため、これを好まないことです。

キュウリに代わりに移行を実行させることはできますか、それともそのようなことを行うためのより良い方法はありますか? 機械工が工場として使用されています (備品はありません!)

0 投票する
2 に答える
923 参照

rspec - cucumber + webrat: 2 回表示されるテキストのチェック

BDDとテスト全般を独学するためのレールアプリに取り組んでいます。cucumber + webrat + rspec を使用して、railcasts ビデオ tuts の後。このアプリでは、クイズ has_many の質問があります。私がテストしているビューは、質問を2回、非連続的にレンダリングする必要があります。(ここでは連続性をテストしていません)これを確認することを目的としたキュウリのシナリオがあります

私のステップは次のように定義されています。

ツールで正規表現をテストしたところ、動作しているように見えますが、テストはキュウリで失敗します。
私はいくつかのドキュメントをグーグルで検索しましたが、webrat の唯一のドキュメントは API ドキュメントです。応答をテキストとして表示できませんでした。なにか提案を?

0 投票する
2 に答える
811 参照

ruby-on-rails - Railsアプリでキュウリを使ったautospec

私はキュウリの機能が正常に動作し、rspecの仕様が正常に動作しています。キュウリの機能と仕様の仕様の両方を実行できます。これらはすべて機能しますが、autospecを実行することを検討していますが、実行すると次のようになります。

警告:$KCODEはNONEです。/opt/local/lib/ruby/gems/1.8/gems/cucumber-0.3.90/lib/cucumber/step_definition.rb:100:警告:メソッドが再定義されました。古い正規表現を破棄する/opt/local/lib/ruby/gems/1.8/gems/treetop-1.2.6/lib/treetop/ruby_extensions/string.rb:31:警告:メソッドが再定義されました。古いインデントを破棄する/opt/local/lib/ruby/gems/1.8/gems/treetop-1.2.6/lib/treetop/compiler/node_classes/character_class.rb:13:警告:voidコンテキストでのリテラルの無用な使用/ opt /local/lib/ruby/gems/1.8/gems/treetop-1.2.6/lib/treetop/compiler.rb:5:警告:グローバル変数`$exclude_metagrammar'が初期化されていません/opt/ local / lib / ruby​​ / gems / 1.8 / gems / treetop-1.2.6 / lib / treetop /compiler / metagrammar.rb:232:警告:メソッドが再定義されました。古いスペースを破棄する/opt/local/lib/ruby/gems/1.8/gems/treetop-1.2.6/lib/treetop/compiler/metagrammar.rb:388:警告:メソッドが再定義されました。古いスペースを破棄する/opt/local/lib/ruby/gems/1.8/gems/treetop-1.2.6/lib/treetop/compiler/metagrammar.rb:771:警告:メソッドが再定義されました。古いスペースの破棄/opt/local/lib/ruby/gems/1.8/gems/treetop-1.2.6/lib/treetop/compiler/metagrammar.rb:779:警告:メソッドが再定義されました。古いスペースの破棄/opt/local/lib/ruby/gems/1.8/gems/cucumber-0.3.90/lib/cucumber/parser/feature.rb:28:警告:メソッドが再定義されました。古い白の/opt/local/lib/ruby/gems/1.8/gems/cucumber-0.3.90/lib/cucumber/parser/feature.rb:36を破棄します:警告:メソッドが再定義されました。古い白の/opt/local/lib/ruby/gems/1.8/gems/cucumber-0.3.90/lib/cucumber/parser/feature.rb:679を破棄します:警告:メソッドが再定義されました。古い白の/opt/local/lib/ruby/gems/1.8/gems/cucumber-0.3.90/lib/cucumber/parser/feature.rb:687を破棄します:警告:メソッドが再定義されました。古い白の/opt/ local / lib / ruby​​ / gems/1を破棄します。8 / gems / cucumber-0.3.90 / lib / cucumber / parser / feature.rb:813:警告:メソッドが再定義されました。古い白の/opt/local/lib/ruby/gems/1.8/gems/cucumber-0.3.90/lib/cucumber/parser/feature.rb:825を破棄します:警告:メソッドが再定義されました。古い白の/opt/local/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/core_ext/blank.rb:49を破棄します:警告:メソッドが再定義されました。古い空白を破棄しますか?

AUTOFEATURE =trueautospecを実行しているim

解決策はありますか

乾杯

0 投票する
2 に答える
775 参照

ruby-on-rails - authlogic-open-idをキュウリとwebratでテストする最良の方法は何ですか?

Railsアプリでauthlogic-openid認証をテストするためにcucumberとwebratを使用するのに問題がありました。Ryan Batesの優れたスクリーンキャストに続いて、open-idプラグインを使用してauthlogicをインストールすることができました。OpenIDは、ブラウザーを使用してログインすると機能しますが、これまでのところ、キュウリとwebratを使用してアプリをテストすることはできませんでした。

rotsをダミーのオープンIDサーバーとして使用してみました。繰り返しますが、これはブラウザで試してみると機能しますが、webratは、ダミーのオープンIDサーバーで認証するために必要なget/postリダイレクトに正しく従いません。

SOに関するこの回答は、認証メソッドをオーバーライドして常に成功したログインを返すことを示唆していますが、このアプローチは、アプリケーションの統合テストのようには見えません。

authlogic-open-idを機能的にテストするための最良の方法は何ですか?わざわざする必要がありますか?ユーザーがすでにログインしているときにアクションをテストし、OpenIDが機能すると想定する必要がありますか?

0 投票する
1 に答える
847 参照

ruby - モジュールを使用して cucumber を拡張し、Before/After フックにアクセスする

World クラスを拡張する汎用モジュールを作成しようとしています。モジュール内から Before フックと After フックにアクセスする必要があります。私は拡張メソッドを使用してこれを行っていますが、この時点で Before/After は使用できないようです。

これらのフックにアクセスする別の方法はありますか?

0 投票する
1 に答える
1153 参照

ruby - Ruby 以外のアプリのキュウリとテスト データの管理

基本的にメッセージ処理アプリケーションであるアプリをテストしています。メッセージが着信し、その内容が分析され、処理のために別の場所に送信されます。アプリは Ruby でビルドされていません。

ご想像のとおり、主なテスト手法は、さまざまな種類の (非常に複雑な) メッセージを大量に生成し、それらをアプリに読み込み、数秒待ってから、正しい場所に送信されることを確認することで構成されます。

機能的には、テストは順調に進んでいますが、現在、Ruby コードで定義されたすべてのテスト メッセージと目的のメッセージ送信先を取得しています。それらを YAML ファイルまたは (2 番目の選択肢) データベースに移動したいと考えています。データベースよりも YAML ファイルを使用した方がバージョン管理が容易であり、技術者以外のテスターがメッセージの内容を直接編集できるためです。

Cucumber でこの種のデータ管理を実装する「推奨される」方法はありますか? フィクスチャのアプローチが理にかなっているような匂いがしますが、私にとってのフィクスチャは常に、ファイルからデータベースにデータを入力し、DB をテストに使用することを伴います。問題。

0 投票する
2 に答える
3015 参照

cucumber - Cucumber でのデータ駆動型テスト

メッセージ ルーティング アプリケーションをテストする必要があります。このアプリケーションの機能は、大まかに次のとおりです。 - メッセージがアプリに送信される - アプリがメッセージを調べる - メッセージの内容に基づいて、メッセージがどこかに転送される

ほとんどのテスト ケースはほぼ同じです。特定のタイプのメッセージを生成し、それをシステムにロードし、数秒待ってから、必要な宛先をチェックして、メッセージが正しく転送されたことを確認します。

Cucumber で何百ものほぼ同一のテスト ケースを生成するのではなく、1 つのテスト ケースを生成し、すべての (メッセージ、required_destination) タプルを繰り返し循環させる推奨される方法はありますか? メンテナンスを容易にするために、これらのタプルをデータベースではなく YAML ファイルに保存することをお勧めしますが、どちらのソリューションでも問題ありません。