あなたは本当にここでポイントを逃していると思います。あなたはいつもにはWhen
が必要です。それはあなたがテストすべきことです!除外できるものは、Givens
です。
When I visit the homepage
Then I should see "Welcome To The Site"
Given When Then
本当にステートマシンを表現するよりよい方法です。私がやりたい何
Given some initial state (in your case, non)
When I perform some action (in your case, visiting the homepage)
Then I have some final state (in your case, text displayed to a user)
はWhen
が起こることを可能にするために存在していなければならないすべての事について考えることです。あなたのケースでは、初期状態がないようです。しかし、あなたがいくつかのWebアプリケーションを持っていた場合は、ホームページにアクセスする前に初期状態にする必要があります(ユーザーがログインしていることを確認する必要があります)。
Given a user (user must be stored in the database)
And the user is logged in (a logged in user must be in the session)
When the user visits their homepage
Then the user should see "Welcome To Your Homepage"
別のシナリオがあります。
Given no logged in user (some people would leave this Given out, but I add it for completness)
When a user visits their homepage
Then the user should be redirect to the login page
誰かが正しく指摘したように、ほとんどのBDDツールは、実際にGiven When Then
は区別されませんが、あなたがしなければなりません! 「われわれはいつか」という冗長な性質は、私たち人間が理解しやすく、思考プロセスを助けるために簡単に選ばれました。マシンはあなたが何をステップと呼ぶかを気にすることができませんでした。この場合、常にキーワードを正しく使用するよう努力する必要があります。
実際にSpecflowは、Given/when/then属性にバインドしている限り、Given、WhenまたはThenのステップに名前を付けるかどうか気にするようには見えません。単語の選択は味であり、順番にステップを実行するように見えます。 – perfectionist
完璧主義者が言うように。 specflowは、フィーチャー・ファイルに記載されている順序でステップを実行するだけです。それはあなたが使用する属性についてはあまり気にすることができませんでした。 –
Doh - コメントに改行はありません! When-stepsを使用して、テストしているアクションを明確にマークすることをお勧めします。アレンジアサーションアサートのように。 –