電子メール配信の自動化された単体テストを実行する方法を誰かが推奨できますか? 電子メール サービス プロバイダーへの Web サービス呼び出しを行うライブラリがあり、テスト メールボックスへの配信をテストしたいと考えています。最終的には、期待値についてメールの内容をテストする必要もあります。
質問する
605 次
2 に答える
1
使用しているサービスをテストするのはエネルギーの配置が間違っているのではないかと思います。サービスはそれ自体をテストする必要があり、最終的には 100% のアップタイムを達成しようとする責任があります。できることは、使用しているサービスを簡単にテストできる、適切に構造化されたコードを作成することです。
これの用語は依存性注入と呼ばれると思います
API を使用していて、API 用の Python ライブラリが提供されている場合は、Python ライブラリをモックできます。これは、組み込みのモックライブラリを使用して実行できます(標準ライブラリ python 3.x にあると思います)。
これを行う方法の簡単な例:
class AnAPILibraryProvidedByEmailServiceProvider:
def send_mail(address, message):
# make some rest calls to their service
return 200 # success mail code
your_function(email_service, email, message):
email_service.send_mail(email, message)
サービスをパラメーターとして取得することで、サービスを簡単にモックできます
class TestService:
def send_mail(address, message):
return 200
class TestServiceFailedSend:
def send_mail(address, message):
return 500
あらゆる種類の応答を返すテスト サービスを作成して、コードが壊れていないことを確認できます。
電子メールの配信をどうしてもテストする必要がある場合は、Pythonsmtp
が標準ライブラリで提供するものを使用して、電子メール サーバーにプログラムでアクセスできます。
于 2013-09-22T22:16:09.650 に答える