我有一个像这样的检票口课:
public class MyReport extends AbstractReport {
private static final long serialVersionUID = 1L;
public MyReport(PageParameters parameters) throws ParseException {
super(parameters);
try {
} catch (ParseException e) {
throw new RuntimeException("Missing from/to date");
}
}
@Override
protected void onInitialize() {
super.onInitialize();
setPageHeader();
}
protected void setPageHeader() {
add(new TaxHeader("pageHeader")); //TaxHeader extends Panel
}
protected void setPageFooter(CustomerDTO customerInfoForFooter) {
//TO BE ADDED
}
}
HTML标记是这样的
<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
<wicket:head>
<title><wicket:message key="k4.title">Title</wicket:message></title>
<meta name="author" content="abc" />
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<wicket:link>
<link rel="stylesheet" type="text/css" href="general.css" media="all" />
</wicket:link>
</wicket:head>
<BODY>
<div id="pageHeader" class="pageHeader" wicket:id="pageHeader" >HEADER</div>
<div id="pageFooter" class="pageFooter" wicket:id="pageFooter" >FOOTER</div>
</BODY>
</html>
测试类是这样的
public class ReportTest extends WicketTestBase {
@Test
public void reportShouldRenderCorrectly() {
tester.startPage(MyReport.class, new PageParamenters());
tester.assertRenderedPage(MyReport.class);
}
}
我想要的是通过构建页面和测试来进行测试驱动。我的意思是我想分别测试这些setPageHeader()
方法setPageFooter()
。就像是
@Test
public void pageHeaderShouldRenderCorrectly()
然而,这是不可能的,因为检票口不会加载页面并抱怨“pageFooter”检票口标签尚未使用组件设置。可以想象,对于具有大量检票口引用的复杂 HTML 页面,这意味着在运行上述测试之前所有这些都已完成。
有没有办法绕过这个?请注意,我不想最终测试组件(即TaxHeader
本例中的类)。我想要的是测试检票口的渲染。