我试图在Wicket中使用动态文本实现链接,用户名作为文本。我的第一个想法是在标记中做这样的事情:
<a wicket:id="somelink"><wicket:message key="some.key">bla bla</wicket:message></a>
属性文件如下所示:
some.key=Username is: {0}
代码:
String username = ...
add(new Link("somelink", new StringResourceModel("some.key", this, null, username)) {
...
});
问题是我不知道如何测试链接的文本是否被设置为用户名(在单元测试中)。
我试过了:
WicketTester
&#39; assertLabel
方法,但无法将Link
转换为Label
Link
&#39; getModelObject()
方法返回原始邮件(即在将用户名格式化之前)有什么想法吗?
答案 0 :(得分:4)
怎么样
WicketTester.getTagById(java.lang.String)
或WicketTester.getTagByWicketId(java.lang.String)
?这些返回TagTester
对象,TagTester.getValue()
返回此标记的值。这包括open标记和close标记之间的所有数据作为String。然后你可以在结果字符串上使用assertEquals并期望......
TagTester link = WicketTester.getTagByWicketId("someLink");
assertNotNull(link);
String linkText = link.getValue();
asserEquals("Username is: " + username, linkText);