問題タブ [jbehave]
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.
bdd - JBehaveストーリーを書く
この質問はRESTに関するものではなく@When
、後続ので行われた呼び出しからの戻り値の使用に関するもの@Then
です。
JBehaveを使用してRESTAPIへの呼び出しをテストすることを検討しています。まずpost
、ユーザーを作成するためのがあります
私はRESTを理解しており、これがAtom APIの機能であるため、IDはロケーションヘッダーで返され/user/22
ます。それで、私は応答について何かを主張したいと思います。
これを行うには、Stepsクラスにメンバー変数を作成し、そこに応答を格納します。以前はこのアプローチを使用していましたが、これは正しい方法ですか?
java - 例外が発生しても JBehave がビルドに失敗しない
JBehave を使用して、WebDriver を使用して記述されたテストを実行しています。Maven は、ビルド プロセスを自動化するために使用されます。そして今、テストを実行して失敗すると、タイムアウトなどに関する例外がスローされ、ビルド全体が壊れません。
例外を除いた出力例を次に示します。
その後、ビルドが失敗しない理由と、ビルドを失敗させる方法を誰か教えてもらえますか? さらに情報が必要な場合は、何を教えてください。
webdriver - Jbehave で同じストーリー テキストを異なるページ オブジェクトに実装する方法
私は WebDriver を使用して Jbehave Web を使い始めたばかりで、同じテキストのステップを異なるステップ メソッドに適用できるかどうか疑問に思いました。
たとえば、次の 2 つのシナリオがあるとします。
シナリオ 1
- 私が物件を購入するページにいるとします
- 検索をクリックすると
- 次に、購入するすべてのプロパティを含む結果ページが表示されるはずです
シナリオ 2
- 私が賃貸物件のページにいるとすれば
- 検索をクリックすると
- 次に、賃貸するすべての物件を含む結果ページが表示されるはずです
ページ オブジェクト パターンを使用してこれを実装すると、たとえば buyProperties というページ オブジェクトが作成され、同様にレンタル プロパティの場合は、rentProperties の行に沿ってページ オブジェクトが呼び出されます (結果ページ オブジェクトも同様です)。
どちらのシナリオでも、検索ボタン/リンクがクリックされるため、手順のテキストは同じです。ただし、実際には、それらは異なるページ (およびページ オブジェクト) にあります。
レンタル シナリオでは、rentProperties ページの検索ボタンのクリックを実装するステップ メソッドを呼び出すことを認識し、購入シナリオでは、buyProperties ページの検索ボタンのクリックを実装するステップ メソッドを呼び出すことを認識できるように、Jbehave を実装するにはどうすればよいでしょうか?
maven - Maven JBehave:ストーリーのエンコードUTF8
Eclipse内でJBehaveを使用して、国際化されたストーリーでテストを作成して実行することができました。すべてがうまくいった。
しかし、Mavenプラグインを使用してそれらを実行しようとすると、エンコーディングの問題を理解できません(たとえば、ストーリーから「scénario」を読み取る代わりに、「Scénario」を取得します。明らかにUTF8エンコーディングの問題です) 。
誰かが、Mavenプラグインを使用してJBehaveにUTF8のストーリーを読ませる方法を見つけましたか?
私たちがすでに試したこと:
- -Dfile.encoding=UTF-8オプションの追加
- UTF8を使用してキーワードファイルを変更する
- プロジェクト全体のエンコーディングをISOで変更する=>これは機能しますが、UTF8でメッセージを表示する必要がある本番環境には適していません
Pom.xml
jbehave - JBehave パターン バリアント - 代替パターンの一致を試みる
私の話には、一致させようとしている次のものがあります
"action"とdocumentの間にof、forまたは empty to "status"はオプション で、nextActionはオプションです
ステップファイルには次のものがあります
これはブロック 1 と 2 に一致しますが、ストーリー ファイルのブロック 3 と 4 には一致しません。
4 つのブロックすべてに一致するようにステップ ファイルをどのように修正する必要があるかについて、いくつかの指針を教えていただけますか?
to ステータスでエイリアスを追加しようとしましたが、次のアクションは削除されましたが、重複候補ステップエラーで JBehave エラーが発生しました。
ありがとうございました
java - JBehave と SpringJUnit4ClassRunner を組み合わせてトランザクションのロールバックを有効にする
エッセンス:
JBehaveを使用した JUnit テストの実行で休止状態のトランザクションを自動ロールバックするにはどうすればよいですか?
問題は、JBehave がを必要としているSpringAnnotatedEmbedderRunner
のに、テストに注釈を付けるために.@Transactional
SpringJUnit4ClassRunner
SpringAnnotatedEmbedderRunner
を使用してロールバックを実装する方法、または を使用して JBehave を動作させる方法に関するドキュメントを見つけようとしましたが、SpringJUnit4ClassRunner
どちらも動作させることができませんでした。
Spring と Hibernate およびトランザクションの自動ロールバックで JBehave ストーリーを実行する (できれば単純な) セットアップを持っている人はいますか?
これまでのセットアップに関する詳細情報:
JBehave を Spring で動作させる - 自動ロールバックでは動作しない:
私のテストステップでは、@Inject
すべてうまくいきます:
(はい、databaseSetupHelper メソッドはすべてトランザクション対応です)
PersonProvider は基本的にラッパーorg.springframework.data.jpa.repository.support.SimpleJpaRepository
です。@Transactional
したがって、entityManager へのアクセスはありますが、(begin/rollback を使用して) トランザクションを制御することは機能しませんでした。そのヘルパー クラス内のフードの下で行われるすべての s のためだと思います。
また、JBehave が別のコンテキストで実行されることを読みましたか?セッション?何か? テストによって開始されたトランザクションの制御が失われる原因は何ですか? かなり紛らわしい内容..
編集:
上記を編集して、私の現在の知識を反映するように投稿を言い換え、全体を短くして、質問がより明確になり、セットアップが邪魔にならないようにします。
bdd - 異なるパラメーターでストーリーを複数回実行する方法
システムに実装されたワークフローをテストするために、jBehave ストーリーを開発しました。このストーリーが customer_registration.story と呼ばれているとしましょう
その話は、私たちのシステムがサポートする他のより複雑なワークフローの出発点です。これらのより複雑なワークフローも、さまざまなストーリーでカバーされています。customer_login.story でカバーされるより複雑なワークフローの 1 つがあるとします。
したがって、customer_login.story は以下のようになります。
すべてが完璧に機能し、私はそれに満足しています。
3.上記のポイント 1 (顧客登録) のストーリーは、さまざまなデータ セットで実行する必要があるものです。システムが i18n をサポートしていて、サポートされているすべての言語で顧客登録のストーリーが正常に実行されることを確認する必要があるとします。たとえば、顧客登録が en-gb と zh-tw の両方で正常に機能することをテストしたいとします。
したがって、次のような multi_language_customer_registration.story を実装する必要があります。
どうすればこれを達成できるかについて何か考えはありますか? 実行の間にクリーンアップ手順を実行する必要があるため、以下のようなものはオプションではないことに注意してください。
ログイン ストーリーが機能しなくなるため、クリーンアップ手順を顧客登録ストーリー内に移動することもできません。
前もって感謝します。
PS 実際には、私たちが作成したストーリーはより複雑であり、それらをリファクタリングするのは簡単な作業ではありませんが、実際の利益のためにこれを行うことができてうれしいです.
java - Webdriver API (JBehave+Webdriver) を使用した BDD の実装
BDD フレームワークを実装して Webdriver スクリプトを拡張しようとしています。JBehave (JBehave+Webdriver) について知りましたが、これを進める前に、主に自動化テストを行っているため、Java コードの実装がどれだけ必要かという懸念があります。私の認識によると、JBehave は 3 つのステップで動作します。
- ストーリー ファイルの追加
- ストーリー ファイルを Java に実装する (この手順に問題があります)
- Webdriver 呼び出しの実装。
したがって、このアプローチでは、アプリケーションに登録するなどのユーザーストーリーがある場合:
- ユーザーストーリーの実装
- Java での実装 - 完全な認証ロジックを Java で実装します。
- webdriver の実装 - ユーザー アクションの自動化
別の例: 特定のワークフローを実行し、5 ~ 6 ページで一連の操作を実行する必要があるユーザー ストーリーがあり、そのために Java コードを実装/シミュレートする必要があります。
これは JBehave の動作方法ですか? また、代替手段はありますか。
selenium - JBehave Web で FirefoxWebDriverProvider を実行しているときにブラウザ ウィンドウのサイズを変更する方法
私たちは JBehave Web を使用して、新しいプロジェクトのセレン テスト スイートを推進しています。JBehave で利用できる Etsy.com の例、特に Java/Spring Maven アーキタイプが私たちのアーキテクチャに適合しているため、非常に気に入っています。
これまでの最大の問題はドキュメンテーションでした。そのため、同様の状況にある他の人から助けが得られることを期待してここに投稿しています。
JBehave Web は「FirefoxWebDriverProvider」クラスのみを提供し、Chrome に対応するクラスを提供していないようです。他の誰かがこの問題に遭遇しましたか? 独自の ChromeDriverProvider を作成しましたか?
また、デフォルトで表示されるブラウザのサイズを変更する必要がありますが、テスト実行のブートストラップ中にそれを行う方法が見つからないようです。
jbehave-maven-plugin と「run-stories-with-annotated-embedder」ゴールを使用する jbehave-web-selenium-java-spring-archetype の Maven アーキタイプを使用しているため、「Annotated」を使用しています。 InjectableEmbedder を拡張するメソッド。
誰かが何らかのガイダンスを提供できる場合は、より多くの例へのポインタであっても、本当に感謝しています.
internet-explorer - 複数のブラウザで jBehave テストを実行するには?
現在、現在のブラウザで JBehave Selenium テストを実行しています。PropertyWebDriverProvider() を使用してブラウザをセットアップしています。私のコードがあります:
public class PlayerLandingPageRunner extends JUnitStories {
...
他のブラウザで実行するように設定するにはどうすればよいですか? IE、クロム?
ありがとう!