質問

現在、WatiN / Wartirテストのために、どのように人々がデータをリセットし、テストの残りをクリーンアップしているのでしょうか?

たとえば、システムにユーザーを追加するテストがあり、ユーザー名が一意である必要があるとしましょう。明らかに、ユーザーなしの最初の実行は正常に動作するはずですが、2回目の実行は手動操作なしでは失敗します。

役に立ちましたか?

解決

このためにできる戦略がいくつかあります。テストを実行するためにNunitまたはVS UnitテストでWatiNを使用していると仮定しています。

トランザクションを使用 単体テストで使用されるアプローチは、「ラップ」することです。トランザクション内のテスト全体と、テストの完了時にトランザクションをロールバックします。 .netでは、これにSystem.Transactionsを使用できます。

「スタブページ」を構築する 既存のビジネスロジックを使用してデータを削除するページをアプリケーションに構築します。このページは保護する必要があり、理想的には実稼働環境にデプロイすることすらできません。 これは私が推奨するアプローチです。

Webサービスを呼び出す Webサービスを開発するか、アプリケーションのアプリケーション層から直接呼び出して、削除を実行します。おそらくこれも開発する必要があるでしょう。

直接クリーンアップ テストコードでいくつかのクラスを作成して、データにアクセスしてクリーンアップします。

これらのいずれかを使用すると、テストを実行する前後にクリーンアップする必要があります(テストセットアップおよびテストクリーンアップメソッド)。 2回行う理由は、テストが失敗し、適切にクリーンアップされていないことを想定するためです。

Linq to sqlを使用する知る限り、Linq to sqlを使用している場合、インメモリで動作し、トランザクション全体の更新を自動的にラップします。単にSubmitChanges()を呼び出さない場合;方法は問題ありませんが、私はこれを自分でテストしていません。

他のヒント

データベースをリセットするスクリプトの作成を開発者に依頼しました。一連のテストの後、そのスクリプトを呼び出して、クリーンなデータベースから開始します。

マイク-あなたの質問はWatir / WatiNに固有のものではありません。 UIテストに適用されるため、Selenium、Windmill、およびヘッドレス統合テスト(HtmlUnit、APIテストなど)の同様のソリューションを検索してください。 StackOverflowでこの質問に数回個人的に回答しました。

WatiNはUIテスト用です。

探しているシナリオをテストするために、c#コードを使用して一意にするユーザーIDを生成できます(テストの作成時の保存方法とは対照的です)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top