gpt4 book ai didi

java - 使用 Apache Wicket 设置组件测试页面

转载 作者:行者123 更新时间:2023-12-01 10:21:14 25 4
gpt4 key购买 nike

我正在测试 wicket 7 应用程序中的一些组件。

我的组件没什么特别的,但它继承自

public PageAwarePanel extends Panel {
@Override
protected void onInitialize() {
super.onInitialize();

//refuse if used on page without PageConfig
if (getPageConfigurationModel() == null){
throw new RuntimeException("this component is only allowed inside pages having PageConfigurationModel");
}
}

protected IModel<PageConfiguration> getPageConfigurationModel(){
if (getPage() instanceof TemplatePage){
return ((TemplatePage)getPage()).getPageConfigurationModel();
}
return null;
}
}

有了这个,我可以从某个面板访问一些配置。

现在当我尝试测试时:

    PositionsPanel p = new PositionsPanel("123", asmNumber, Model.of());
tester.startPage(MyPage.class);
tester.startComponentInPage(p);

其中 MyPage 是 TemplatePage。

我得到了定义的 RuntimeException。我的问题是:

如何通过定义应在哪个页面上呈现该组件来测试该组件?

感谢您提前提供的所有帮助。

最佳答案

tester.startPage(MyPage.class);
tester.startComponentInPage(p);

这两个没有关系。这就像在浏览器中导航两个不同的页面。

最好的方法是为满足要求的测试创建一个页面,将面板添加到此页面并执行tester.startPage(TestPage.class)

另一种方法是重写org.apache.wicket.util.tester.BaseWicketTester#createPage()并返回MyPage的实例。这样您仍然可以使用 startComponentInPage() 但其他方面与第一种方法基本相同。

关于java - 使用 Apache Wicket 设置组件测试页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35603053/

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