これは私が遭遇した興味深いトピックであり、私の同僚と私はこの問題について異なる意見を持っています. Gherkin は、テストが何を行っているかを正確に説明する必要があります。または、テストで達成しようとしたビジネス ロジックのみを表示する必要があります。
私が職場でよく遭遇する最大の例は、アイテム A にアクセスできる場合は、A にアクセスできるはずだということです。A にアクセスできるユーザーには 20 種類のユーザーがいる可能性があるため、1 つだけを選択します (テスト スイートの実行に 40 時間もかからないようにするためです)。では、どちらが「より良い」でしょうか?
あ
Scenario: A user with access to item A can access A
Given I am a type 4 user with access to item A
When I try to access A
Then I am granted access to A
またはB
Scenario: A user with access to item A can access A
Given I am a user with access to item A
When I try to access A
Then I am granted access to A
与えられたステートメントの違いに注意してください (タイプ 4 ユーザー)
ステップ定義では、テストにタイプ 4 のユーザーを使用する予定ですが、テストはタイプ 4 のユーザーに固有のものではありません。アイテム A を持つすべてのユーザーがこのテストで機能します。ログインにユーザー タイプが必要なため、タイプ 4 のユーザーを使用しています。
したがって、A はテストの内容を説明します (アイテム A へのアクセス権を持つタイプ 4 ユーザーでログイン)
B は、アイテム A にアクセスするために必要な機能を説明します (アイテム A にアクセスできるユーザーのみ)。
質問する前に、アイテム A へのアクセス権を持つユーザーを特定する方法は、ユーザーにリンクされた特定のアイテムを検索するデータベースへの SQL 呼び出しです。