1

私は何百人もの実際のユーザーがいる本番環境のWebアプリケーションを持っています。

アプリケーションはデータ駆動型であり、アプリケーションの状態はデータから変化するため、本番環境のテスト環境を1つ持つ必要がありました。実際のユーザーデータが存在しない場合は、テストできません...

しかし、実際の電子メールがあるため、テストのリスクがあります。テスト電子メールは実際のユーザーに送信される可能性があります。

そのため、メールを実際のものではないものに変更するメカニズムが必要でしたが、メールフィールドは一意であるため、1つのクエリですべてを変更するにはどうすればよいですか。

私の同僚は、+any_numberexのメールを提案しました。同じメールアドレスにメールを送信しますrajat@gmail.comrajat+27@gmail.com

だから私はいくつかのクエリを書きました

update users set email = CONCAT(CONCAT('rajat+',id),'@gmail.com')

そしてそれは問題を解決しました..今、私は生産データで環境をテストすることで操作することができます..

私の質問:

1)それはどのように機能しますか?

2)それは正しいアプローチですか?人々はどのようにテスト環境と本番環境を管理しますか?

4

1 に答える 1

1

データベースを変更するのではなく、コードを低レベルで変更することを好みます。例えば:

function sendEmail($to, ...) {
    if (APPLICATION_ENV != 'production') {
        $to = "dev@.....";
    }
    // continue ...
}

このようにして、アドレスがフォームなどの別のソースからのものであっても、受信者アドレスがテストアドレスに変更されていることを常に確認できます。

于 2012-06-25T17:56:16.947 に答える