Java WicketTester选择收音机选项,然后单击下载链接

Java WicketTester选择收音机选项,然后单击下载链接,java,java-8,wicket,wicket-tester,wicket-7,Java,Java 8,Wicket,Wicket Tester,Wicket 7,我有一个问题要理解如何正确地做,因为我在网上找不到任何解决办法 我尝试测试无线电选择并点击下载链接(额外的好处是断言下载的文件) 我在面板中的代码是 exportXmlCartForm.add(createDownloadLink("downloadLinkId")); final Form<Void> exportXmlCartForm = new Form<Void>("xmlCartFileExport"); final RadioGroup<String&g

我有一个问题要理解如何正确地做,因为我在网上找不到任何解决办法

我尝试测试无线电选择并点击下载链接(额外的好处是断言下载的文件)

我在面板中的代码是

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);
exportXmlCartForm.add(createDownloadLink(“downloadLinkId”); 最终表单exportXmlCartForm=新表单(“xmlCartFileExport”); 最终射线组组=新射线组(“groupFileType”,新sharedStringModel); 最终无线电部件链接=新无线电(“文件类型部件链接”,型号为(“pl”); 最终Radio radioPro=新收音机(“fileTypePRO”,型号为(“pro”); 最终收音机收音机csv=新收音机(“文件类型csv”,型号为(“csv”); 最终收音机radioXmlExport=新收音机(“fileXmlExport”,型号为(“xml”); 添加(radioPartslink、radioPro、radioCsv、radioXmlExport); exportXmlCartForm.add(组); 以下是我目前的测试:

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");
CartDTO CartDTO=new CartDTO();
IModel cart=型号(cartDTO);
PopupPanel confirmPopup=新的PopupPanel(“1234”);
反馈面板反馈面板=新反馈面板(“12345678”);
ShoppingCartFooterPanel p=新的ShoppingCartFooterPanel(“123”,购物车,确认弹出窗口,反馈面板);
testPage.setComponentToTest(p);
测试仪起始页(测试页);
FormTester ft=tester.newFormTester(“123:xmlCartFileExport”,false);
ft.select(“groupFileType”,3);
Object parstlinkSelected=p.get(“xmlCartFileExport:groupFileType”).getDefaultModelObject();
单击链接(“123:xmlCartFileExport:downloadCart”);
我不明白的是

  • 如何在我的测试中做出不同的选择(以及如何验证)
  • 如何单击下载链接并验证我获得的文件
  • 我将感谢任何帮助

    THX

  • 选择后,您需要
    FormTester.submit()
  • 使用
    clickLink(…,false)
    正常(即非Ajax)单击。然后使用
    tester.getLastResponse().get***()
    等方法(
    getBinaryContent()
    getHeader(String)
    )进行断言
    谢谢,马丁,这很有效。我想让我恼火的是,你必须先提交表单,我在前端没有提交按钮,因为没有提交按钮。在这种情况下,必须有Ajax行为(AjaxFormChoiceComponentSubmittingBehavior)这将提交所选内容。到目前为止,如果所选内容是索引0,则该选项有效,但如果我将其更改为1或其他内容,则该选项无效。我从tester.getLastResponse获得另一页html。此外,没有附加任何行为。上面的代码就是一切。以前只有一个RadioGroup和DownloadLink,但是我在它周围放了一个表单,这样FormTester就可以选择Radio。但是如果只有RadioGroup没有Ajax提交行为或表单,那么Radio的值是如何发送到服务器的呢?嘿,Martin,RadioGroup有一个共享模型,DownloadLink也可以访问该模型,因此决定下载何种格式。我更新了问题中的模型,该模型可以重用