java - 如何使用 AbstractAjaxTimerBehavior 对 Wicket 组件进行单元测试?

标签 java unit-testing wicket

我有一个 Wicket 面板,其中有 AbstractAjaxTimeBehavior ,我想进行单元测试。如何在单元测试期间触发 ajax 事件并最终调用 AbstractAjaxTimeBehavior.onTimer(AjaxRequestTarget target) 方法?

behavior = new AbstractAjaxTimerBehavior(Duration.seconds(pollingPeriodInSeconds)) {
  protected void onTimer(AjaxRequestTarget target) {
     // how to unit test this?
  }
}
add(behavior);

最佳答案

由于计时器行为不会像在浏览器中那样自行触发,因此您必须使用 executeBehavior(AbstractAjaxBehavior)你自己。

if (!timerBehavior.isStopped())
  wicketTester.executeBehavior(timerBehavior);

看看executeAllTimerBehaviors(MarkupContainer)的代码。请注意,此方法仅适用于 AjaxSelfUpdatingTimerBehavior

关于java - 如何使用 AbstractAjaxTimerBehavior 对 Wicket 组件进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4895514/

相关文章:

java - 确定字符出现的次数,无论大小写

asp.net - 使用 aspnet_compiler.exe 编译 .Net Web Apps

java - Wicket:从类变量名称获取 DropDownChoice 列表项名称

Java配置Web应用程序的上下文根

java - @Ignore 对 JUnit XML 输出做了什么?

java - 如何在每次创建新文件时增加文件名中的数字?

java - m2eclipse 可以使用其他目录结构吗?

android - 在 android studio 中将 UnitTest 转换为 Instrumentation Test

c++ - Gmock 只期待一个特定的调用

当在 Wicket ModalWindow 中使用面板时,HTML 中的 Javascript 不起作用