問題タブ [cucumberjs]
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.
javascript - Cucumber-JS ステップ内でマングース コレクションを削除できません
Cucumber-JS を使用していくつかの BDD 機能を記述し、Mongoose を使用して各シナリオのデータベースをリセットしています。
バックグラウンド タスクを設定し、そのステップを生成し、callback.pending() を callback() に変更して渡します。
そして私のステップコード:
Mongoose スキーマに require ステートメントを追加し、コールバックを次のようにラップします。
これはproduct.jsファイルです
そして、cucumber-js を実行すると、ただ終了します。戻って削除機能を削除すると、再び正常に動作します。
次のように実行してみました:
この動作の原因は何ですか?
javascript - 分度器と Gulp を使用して CucumberJS にフックをロードする
分度器とGulpでCucumberJSをセットアップしました。ここで入手可能なドキュメントに従いました: https://github.com/cucumber/cucumber-js
機能ファイルとステップ定義ファイルがあります。また、support フォルダーに world.js ファイルを作成し、ステップ定義ファイルに次のようにロードします。
したがって、ドキュメントに示されているのと同じ方法です。この瞬間まですべてが機能します。
ケースにキュウリのフックをいくつか追加しようとしました。ドキュメントで提案されているように、supportフォルダーにhooks.jsファイルを作成しました。
ドキュメントには、この hook.js ファイルをステップ定義にロードする方法が記載されていないため、何らかの形で「構成よりも規則」アプローチでロードされていると想定しています。残念ながら、ファイルは読み込まれず、Before メソッドは実行されません。
何か案は?
meteor - Xolvio/meteor-cucumber: this.server.call の結果を返す
パッケージXolvio/meteor-cucumberを使用しており、フィクスチャ メソッドを呼び出して、その戻り値をステップ定義で使用しようとしています。
ステップ:
そして、SMS コード「#smsCodeVerification」を入力します。
ステップ定義:
上記のコードは次を出力します。
ステップコード: [オブジェクト Promise]
サーバーメソッドは次のようになります。
ステップ定義のコンソール ログはサーバー メソッドが終了する前に実行され、サーバー メソッドからコールバックを取得する meteors の通常の方法を使用しても機能せず、undefined のみが返されます。
selenium-webdriver - webdriverio getText 文字列を変数に設定します
現在、webdriverio を使用して getText メソッドの内容で変数をインスタンス化しようとしています。
変数を印刷しようとすると、これが出力されます。
[オブジェクト オブジェクト]
助けてくれてありがとう!
javascript - Chai as Promised を使用して分度器とキュウリで約束を解決する
最近、同僚と私は、Protractor と Chai as Promised を使用して Cucumber のステップ定義を実装する「正しい」方法について意見の相違がありました。私たちの主張は、Cucumber のコンテキストでのプロミス解決で正確に何が起こっているのかを相互に理解していないことに起因しています。
AngularJS アプリケーションに対してテストしているため、promise と非同期動作の解決は必要悪です。私たちが経験した最大の問題は、同期テスト動作を強制し、Cucumber にステップ定義間の promise を待機させることです。場合によっては、Cucumber が Webdriver がステップ定義を実行する前にステップ定義を真っ直ぐ進んでいるように見える状況を観察しました。この問題に対する私たちの解決策はさまざまです...
架空のシナリオを考えてみましょう:
混乱のほとんどは、Then ステップで発生します。この例では、定義は、検索フォームのすべてのフィールドがページに存在することをアサートする必要があります。つまり、複数の isPresent() チェックを意味します。
見つけたドキュメントと例から、アサーションは次のようになるはずだと感じました。
ただし、私の同僚は、約束の解決を満たすためには、次のように then() で期待値を連鎖させる必要があると主張しています。
後者は私には本当に間違っているように感じますが、前者も正しいかどうかはよくわかりません。私が最終的に理解する方法は、先に進む前に約束が解決するのを待つという点で、then() と同様に機能するということです。前の例では、各 expect() 呼び出しを順番に待機し、最後の expect() で notify() を介して next() を呼び出して、cucumber に次のステップに進むように通知することを期待します。
さらに混乱を招くことに、他の同僚が次のように予想を書いているのを観察しました。
したがって、私がほのめかしていると思う質問は次のとおりです。
- 上記のいずれかはちょっと正しいですか?
- 最終的に()は実際に何をしますか?then() のような同期動作を強制しますか?
- and.notify(next) は実際に何をしますか? then() 内で next() を呼び出すのとは違いますか?
- これについてより明確にする、まだ見つかっていないベスト プラクティス ガイドはありますか?
よろしくお願いします。
javascript - ネストされたプロミスは未定義を返します
Protractor と chai-as-promised を使用して、cucumber.js でテストを作成しようとしています。
私の Page オブジェクトには、次のコードの断片があります。
私のステップ定義コードでは、次のことを行います。
このテストを実行すると、
undefined が真であると予想される
これは、isMenuListed メソッドが true ではなく undefined を返したことを意味します。ただし、デバッグしたところ、「return true;」ということがわかります。ステートメントが実行されます。
この場合、プロミスがどのように機能するかについて何か不足していますか?
javascript - 分度器を使用して、テキストに基づいてリスト内の DOM オブジェクトを選択するにはどうすればよいですか?
タイトルに基づいて商品リストから商品を選択しようとしています。
私がやりたいのは、「リストのアイテムに「鶏の胸肉(200g)」に一致するタイトルがある場合は、ボタンをクリックします.
分度器でこれを書く方法を知っている人はいますか?
どの時点で何が返されるのか、何が約束で何がそうでないのか、そして何かをする前に結果が出るまで待つ方法を理解するのに苦労しています。
dom構造は次のようになります
私はこれまでにこれを試しました: