0
    {
        Assert.That(_editUserPage.State.SelectedText, Is.EqualTo("Illinois"));
        _editUserPage.State.SelectedText = "New York";
        Assert.That(_editUserPage.State.SelectedText, Is.EqualTo("New York"));
        _editUserPage.SaveChanges();
        Assert.That(_editUserPage.State.SelectedText, Is.EqualTo("New York"));
     }

上記の例では、ユーザーの州をイリノイからニューヨークに変更しています。私の質問は、テストの最後に Illiois の状態を元の値に戻す必要があるかどうかです。

同じファイルに約 20 個の独立したテストがあり、データを元の状態に戻すためのベスト プラクティスを知りたいと考えていました。個々のテスト内ではなく、テスト スイート全体に対してセットアップ/ティアダウンを使用しています。

4

2 に答える 2

1

私が見たこれまでのベストプラクティスはこれでした:

  1. テストには 1 つのテスト データ入力がありました (Excel シート)
  2. 実行ごとにデータにプレフィックスが追加されます (例: 名前 Pavel => Test01_Pavel)。
  3. テストでは、そのようなデータがシステムに存在しないことを確認しました
  4. テストは、入力に従ってテスト データを作成し、それらのデータが存在することを確認しました。
  5. テストでは、すべてのテスト データを削除し、それらのデータが削除されていることを確認しました。

しかし、本当の最良の答えは「場合による」です。個人的には、システムからテスト データを削除していません。

  • テスト環境は本番環境と厳密に分けられています
  • テスト データは、後でパフォーマンス テスト中に役立つ場合があります (例: システムからユーザーのリストをダウンロードする)。

したがって、あなたが自問すべき本当の質問は次のとおりです。

  • 最後にテスト データを削除すると、何かメリットがありますか?
  • またその逆: テスト データがシステムに残っているとどうなりますか?

ところで、「意味のないデータやダミー データが多すぎるとアプリケーションが確実に壊れる」と感じた場合は、そのシナリオを確実にテストする必要があります。あなたのサービスが一夜にして人気を博し (Charlie sheen があなたのページの使用についてツイートしています :) )、何百万人ものユーザーが自分自身を登録したいと想像してみてください。

于 2012-06-29T19:24:14.870 に答える
0

私が勤めている会社では、次のようなアプローチをとっています。

  1. クラウド (AWS) で専用のテスト環境を立ち上げる
  2. 一連のテストを開始する
  3. 各テストは、必要なデータを挿入します
  4. テスト スイートが完了したら、servers, inc. を破棄します。デシベル

このようにして、テストが実行されるたびに新しいデータベースが作成されるため、スイート内の 2 つのテストが競合するデータを生成している場合にのみ、不正なデータがテストを壊す危険があります。

于 2014-10-22T09:00:31.260 に答える