テスト用に Specflow、Selenium、PageObject パターンを使い始めました。シナリオを互いに独立させたいのですが、テスト機能の実行を開始すると、最初のシナリオの後、ユーザーが匿名ではないことがわかります。
- テスト ユーザーはいつログアウトする必要がありますか?
- 各シナリオの前に?
- 各シナリオの後?
- Specflow と Selenium は各シナリオの後に状態を落とすことができますか?
page.Logout()毎回電話しないといけないの?
テスト用に Specflow、Selenium、PageObject パターンを使い始めました。シナリオを互いに独立させたいのですが、テスト機能の実行を開始すると、最初のシナリオの後、ユーザーが匿名ではないことがわかります。
page.Logout()毎回電話しないといけないの?テストケースに関連する場合は、ログアウトする必要があります。SO にログインして、新しい質問の投稿をテストしてから、回答を書き、それぞれに 2 つのコメントを追加するとします。各ステップ間でのログインとログアウトは非常に面倒であり、現実の世界ではユーザーはそうしません。したがって、テスト シナリオの開始時にログインし、終了したらログアウトするだけです。
別の例として、上記の各ステップを異なるユーザーとして実行する場合、すべてのステップでログイン/ログアウトする必要があります。
これは全体像にも当てはまります。ログインしているユーザーが必要であるが、そのユーザーの情報に依存しない複数のシナリオがある場合、それらすべてを実行する前に一度ログインしてからログアウトすることもできます。
Specflow と Selenium は状態を保持しません。それを行うのは、テストしているシステムです。たとえば、セッションが Cookie に保存されている場合、その Cookie をクリアすると、実質的にログアウトされます。ただし、これはエンド ユーザーがシステムを使用するためのシステムのテストではありません。そのため、手抜きをして、システムのさまざまな領域 (認証されていないユーザーの承認) をテストしているだけであり、実際のケースとはあまり相関していません。ブラウザベースのテストを書いているので、ページのログアウトボタン/リンクを使用してください。