【问题标题】:Apache Wicket FormTester not working properlyApache Wicket FormTester 无法正常工作
【发布时间】:2015-11-01 11:11:10
【问题描述】:

我遇到了一个问题,我在网上找不到任何有用的东西。我有一个带有 wicketID“addressform”的表单,它是 Main 模板类中的一个面板。我正在尝试按如下方式对其进行测试:

    public void testLinkToAddressFormValid(){
    PageParameters params = new PageParameters();
    params.add("entity", "address");
    params.add("viewMode", "2");
    params.add("subMode", "0");
    params.add("key", "1");

    // start Main Page with given parameters
    tester.startPage(Main.class, params);

    // try to test a new form
    FormTester formTester = tester.newFormTester("addressform",false);
    formTester.submit();
    }

通常我通过使用来调用地址表单

    setResponsePage(new Main("address",2,0,1)); 

它将主模板的内容替换为AddressForm(类称为AddressForm whcih extends Panel)面板。 AddressForm 接受一些参数。

最后我得到异常“junit.framework.AssertionFailedError: path: 'addressform' does not exist for page: Main”。目前我正在使用 Apache Wicket 6.0

【问题讨论】:

    标签: apache wicket


    【解决方案1】:

    断言实际上主页面是在 startPage() 调用之后呈现的。也许您有一个重定向到登录页面的身份验证策略?!

    【讨论】:

    • 嘿马丁,谢谢你的提示。当然,有一种身份验证机制,但在测试用例运行之前,有一个方法可以进行身份​​验证。这里奇怪的是,它向我显示 Main 页面不存在 addressform,但 Main 是我的模板,而 addressform 是一个在模板内呈现的面板。是不是我们需要为 newFormTester() 调用采取另一条路径?可能是 panel:addressform 之类的?
    • 使用 tester.debugComponentTrees() 查看组件结构。
    猜你喜欢
    • 2016-12-01
    • 2020-10-26
    • 2017-08-15
    • 2014-02-23
    • 2016-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多