【问题标题】:WicketTester Select Radio Choice and click DownloadLinkWicketTester 选择 Radio Choice 并单击 DownloadLink
【发布时间】:2016-04-18 13:06:07
【问题描述】:

我有一个问题要理解如何正确执行,因为我在网上找不到任何解决方案。

我尝试测试收音机选择并单击下载链接(奖励将断言下载的文件)。

我在面板中的代码是

exportXmlCartForm.add(createDownloadLink("downloadLinkId"));
final Form<Void> exportXmlCartForm = new Form<Void>("xmlCartFileExport");
final RadioGroup<String> group = new RadioGroup<String>("groupFileType", new sharedStringModel);
final Radio<String> radioPartslink = new Radio<String>("fileTypePARTSLINK", Model.of("pl"));
final Radio<String> radioPro = new Radio<String>("fileTypePRO", Model.of("pro"));
final Radio<String> radioCsv = new Radio<String>("fileTypeCSV", Model.of("csv"));
final Radio<String> radioXmlExport = new Radio<String>("fileXmlExport", Model.of("xml"));
group.add(radioPartslink, radioPro, radioCsv, radioXmlExport);
exportXmlCartForm.add(group);

这是我目前的测试:

CartDTO cartDTO = new CartDTO();

IModel<CartDTO> cart = Model.of(cartDTO );
PopupPanel confirmPopup = new PopupPanel("1234");
FeedbackPanel feedbackPanel = new FeedbackPanel("12345678");
ShoppingCartFooterPanel p = new ShoppingCartFooterPanel("123", cart, confirmPopup, feedbackPanel);

testPage.setComponentToTest(p);
tester.startPage(testPage);
FormTester ft = tester.newFormTester("123:xmlCartFileExport", false);
ft.select("groupFileType", 3);

Object parstlinkSelected = p.get("xmlCartFileExport:groupFileType").getDefaultModelObject();
tester.clickLink("123:xmlCartFileExport:downloadCart");

我没有得到的是

  1. 如何在我的测试中做出不同的选择(以及如何验证这一点)
  2. 如何点击下载链接并验证我得到的文件。

我将不胜感激。

谢谢

【问题讨论】:

    标签: java java-8 wicket wicket-tester wicket-7


    【解决方案1】:
    1. 选择后需要FormTester.submit()
    2. 使用clickLink(..., false)进行正常(即非Ajax)点击。然后使用tester.getLastResponse().get***() 方法如(getBinaryContent()getHeader(String))来断言。

    【讨论】:

    • 感谢马丁这工作。我认为让我恼火的是你必须先提交表单,而我在前端没有,因为没有提交按钮。
    • 在这种情况下,必须有提交选择的 Ajax 行为 (AjaxFormChoiceComponentSubmittingBehavior)。
    • 到目前为止,如果选择是索引 0,它可以工作,但如果我将其更改为 1 或其他内容,它就不起作用。我从 tester.getLastResponse 得到另一个 Page html。此外,没有附加行为。上面的代码就是一切。以前只有 RadioGroup 和 DownloadLink,但我在它周围放了一个 Form,所以 FormTester 可以选择 Radio。
    • 但是如果只有 RadioGroup 没有 Ajax 提交行为或表单,那么 radio 的值如何发送到服务器?
    • 嗨 Martin,RadioGroup 有一个共享模型,DownloadLink 也可以访问该模型,因此决定下载什么格式。我更新了问题中重复使用的模型
    猜你喜欢
    • 2022-08-07
    • 2020-01-06
    • 1970-01-01
    • 2018-09-23
    • 2020-09-27
    • 1970-01-01
    • 2016-06-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多