我正在使用 EJB 计划来执行电子邮件守护程序任务:
@Schedule(hour="8, 10, 12, 14, 16, 18")
public void sendExpirationReminders() {
}
如何在正在运行的服务器上测试这些方法?
我目前使用 HtmlUnit 进行大部分测试,因此我可以发出真实的浏览器请求。但是我不知道如何测试这些守护进程方法的内部内容。
最佳答案
简短的回答是:你不能。
有些人建议(我同意)将执行调度的代码与实际执行操作的代码分开。如果您遵循这一点,您将拥有一个具有 @Schedule
注释的类,它的唯一职责是调用执行该操作的类。
为什么你可以测试这个?很简单,您不能在应用程序服务器中模拟日期(或时钟)。
关于testing - 如何测试 EJB @Schedule,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13432707/