gpt4 book ai didi

java - 如何创建 Wicket MarkupContainer 以在 JUnit 测试实用程序类中使用?

转载 作者:行者123 更新时间:2023-12-01 04:50:40 25 4
gpt4 key购买 nike

我编写了一个实用程序类,它从带注释的模型生成 Wicket 组件,并将它们添加到作为方法参数传入的 MarkupContainer 中。

对于该生成器的单元测试,需要 MarkupContainer。我尝试了这样的方法:

final MarkupContainer container =
new MarkupContainer("container") {
private static final long serialVersionUID = 1L;
};

这可以编译,但运行测试会抛出此异常:

org.apache.wicket.WicketRuntimeException:
There is no application attached to current thread main

因此,MarkupContainer 容器需要环境中未定义为构造函数参数的其他对象。从文档中我无法弄清楚它们是什么。

我查看了 WicketTester,但没有找到使其生成 MarkupContainer 的方法。

您能否建议一种生成 MarkupContainer 实现以在 JUnit 测试中使用的方法,最好无需创建完整的 Web 应用程序?

最佳答案

Wicket 组件通常需要一个绑定(bind)到当前线程的应用程序。看看 (Base)WicketTester 内部做了什么。创建 WebMarkupContainer 的最简单解决方案是实例化 WicketTester - 它负责后台初始化:

@Test
public void testWmc() throws Exception {
WicketTester tester = new WicketTester();
new WebMarkupContainer("id");
}

关于java - 如何创建 Wicket MarkupContainer 以在 JUnit 测试实用程序类中使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15022034/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com