0

サーブレットと JSP ページを使用して構築された Java Web アプリケーションがあります。JWebUnit ( http://jwebunit.sourceforge.net ) を使用していくつかの統合テストを作成しました。

次のようなテスト方法があります。

@Test
public void testContact() {
beginAt("contact");
assertResponseCode(200);

assertFormPresent("form_contact");
assertElementPresent("page_contact_form_uitleg");
assertTextInElement("page_contact_form_uitleg", getMessage("pagina.contact.uitleg"));

assertFormElementPresent("form_naam");
assertFormElementPresent("form_email");
assertFormElementPresent("form_boodschap");

setTextField("form_email", "joel@craenhals.eu");
setTextField("form_wachtwoord", "Joel1234!");
}

ただし、テストメソッドでフォームを送信すると、メールが送信されます。Rails のように、この電子メール機能をテストする方法はありますか? Rails でテスト環境にいる場合、アプリは実際のメールを送信していません。代わりに、それらのメールをある種のテスト キューに追加して、メールが送信されたかどうかを確認できるようにします。

Java Web アプリでそのようなものを使用できますか?

4

2 に答える 2

0

これを自動的に行う JSP/サーブレットには何も組み込まれていません。Rails はフレームワークですが、JSP/サーブレットは下位レベルです。ただし、アプリには、テキスト ファイルまたはデータベースに格納された環境固有のプロパティがいくつかあると思われます。のようなブール値を作成し、suppressMailSendこのブール値を使用して、メール送信コードが実際にメールを送信するかどうかを制御する (そうでない場合は、おそらくメッセージをアプリ ログに記録する) と、それで十分です。(これらのメールを意図した受信者ではなく、条件付きで自分自身に送信することも役に立ちます。「実際の」受信者アドレスを件名に追加して、本番環境でメールが誰に送信されるかがわかります。送信されたメールがどのように見えるかを見たい場合。)

于 2013-08-23T06:44:57.653 に答える