我正在为 wicketproject 构建单元测试,但在测试下载功能时遇到问题。我从带有搜索表单的页面开始。
wicketTester.startPage(SearchPage.class);
// set values for FormTester formTester
formTester.submit();
提交后,我得到一个带有 ListView 的页面,到目前为止一切顺利。
tester.assertRenderedPage(ResultPage.class);
// test some Labels in listitems
现在我想将列表导出到 csv 并检查该文件。这里还是可以的
tester.clickLink("exportlink");
tester.assertContains("part,of,csv,to,test;");
现在我想“返回”并单击列表项以转到搜索结果的详细信息。我无法找到如何获取列表所在的上一页,然后触发列表项上的ajaxevent。
tester.executeAjaxEvent("aansluitngrow:1", "onclick");
感谢您的帮助:)
最佳答案
我不确定您的单元测试方式是否正确。每个单元测试都应该测试单元的单个功能,因此在这种情况下它将是: 1.测试提交表单; 2.测试导出链接 3.测试ajax事件; 等等
每个点都应该有自己的单元测试,因为每个点都是一个工作单元。这样您就可以确保这些单元的任意组合也能正常工作。然而,如果您通过这些单元测试单个路径,则无法确保如果路径中的某个元素不同,您仍然会得到正确的结果。
此外,“返回”不是您的代码库的功能;您不应该将其包含在测试中,您应该假设提供返回功能的任何内容都已经过测试。
因此我相信你甚至不需要“回去”;您应该针对该功能进行新的单元测试,其中起点是具有正确呈现的项目列表的 ResultPage
(在另一个测试中确保正确呈现),您可以在该测试上执行自定义 ajax 事件。
关于java - 如何为 wicket DownloadLink 编写单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23654990/