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”);
我不明白的是
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也可以访问该模型,因此决定下载何种格式。我更新了问题中的模型,该模型可以重用