これが私たちの受け入れテストの1の例である:SpecflowでBDDスクリプティングのアンチパターンにどのように対処していますか?
Feature: Add an effect to a level
In order to create a configuration
As a user
I want to be able to add effects to a level
Scenario: Add a new valve effect to a level
Given I have created a level named LEVEL123 with description fooDescription
And I am on the configuration page
When I click LEVEL123 in the level tree
And I expand the panel named Editor Panel
And I click the Add Valve Effect button
And the popup named ASRAddVal appears
And I click the Add new button
And I fill in these vertical fields
| field name | value |
| Name | Effect123 |
Then I should see the following texts on the screen
| text |
| Effect added : EFFECT123 |
私たちは、これは少し冗長にするためになっていると我々はあなたがSpecflowの手順を減らす方法を聞きたいと思っています。私が今までに読んだことから、特定の再利用不可能なステップを作成することは推奨されません。したがって、SpecFlowでこれを行う際に "ベストプラクティス"とは何か考えられますか?
更新:
私が言うことをしようとしている何が、私はあなたが複数のテスト間でそれらを再利用するために、一般的な手順を作成しようとする必要があることを学んできたということです。これを行うための1つの方法は、ステップをパラメータ化することです。たとえば、「私は..という名前のレベルを作成したとしますが、パラメータ化によって冗長性が導入されます。私はBryan Oakleyのようなもので解決したいと思っていますが、各テストに非常に特有のステップを作成せずにどのように行うことができないのか分かりません。これは、メンテナンス性を低下させる多くのステップで終わることを再度意味します。私はSpecFlowのように "ステップ"と呼ばれる基本クラスを継承するファイルを作成することによって略語のステップを定義するいくつかの方法がありますが、これはまだ新しいステップを紹介しています。
要約すると、維持可能なBryan Oakleysの答えに結びつくための良いアプローチを示してください。
[OK]しかし、どのようにして非常にテスト固有のステップに進むのですか?今まで理解してきたことから、テスト固有の手順を避けるべきです。 – Marius
@マリアス:私はあなたの質問を理解していません。当然のことながら、「何かが次の値を持つ新しいバルブエフェクトを追加するとき」のように、テストに固有のものでなければなりません。ユニークなものがなければ、テストのポイントはありません。一方、これらのステップはすべて、他のテストでも使用される可能性があります。たとえば、「新しいレベルを作成した場合、新しいレベルを削除すると...」と表示されます。または、「新しいバルブエフェクトを追加すると、エラー「無効なフィールド名」などが表示されます。 –
私の問題について詳しく説明しました。質問の更新を参照してください。 – Marius