3

私はEJBスケジュールを使用して電子メールデーモンタスクを実行しています。

@Schedule(hour="8, 10, 12, 14, 16, 18")
    public void sendExpirationReminders() {
}

実行中のサーバーでこれらのメソッドをテストするにはどうすればよいですか?

現在、ほとんどのテストでHtmlUnitを使用しているため、実際のブラウザー要求を行うことができます。しかし、これらのデーモンメソッドの内部コンテンツをテストする方法がわかりません。

4

1 に答える 1

4

簡単に言えば、できません。

一部の人々が提案しているのは (私も同意します)、スケジューリングを行うコードと、実際に操作を実行するコードを分離することです。これに従うと、@Scheduleアノテーションを持つ 1 つのクラスが作成されます。これは、操作を実行するクラスを呼び出すことだけを担当します。

なぜこれをテストできるのですか?簡単です。アプリケーション サーバーで Date (または時計) をモックすることはできません。

于 2012-11-17T17:09:39.850 に答える