Java 如何测试链接';Wicket中的文本

Java 如何测试链接';Wicket中的文本,java,unit-testing,tdd,wicket,wicket-tester,Java,Unit Testing,Tdd,Wicket,Wicket Tester,我试图在Wicket中实现一个动态文本链接,并将用户名作为其文本。我的第一个想法是在标记中执行如下操作: <a wicket:id="somelink"><wicket:message key="some.key">bla bla</wicket:message></a> 以及守则: String username = ... add(new Link("somelink", new StringResourceModel("some.key",

我试图在Wicket中实现一个动态文本链接,并将用户名作为其文本。我的第一个想法是在标记中执行如下操作:

<a wicket:id="somelink"><wicket:message key="some.key">bla bla</wicket:message></a>
以及守则:

String username = ...
add(new Link("somelink", new StringResourceModel("some.key", this, null, username)) {
    ...
});
问题是我不知道如何测试链接的文本是否被设置为用户名(即在单元测试中)。
我试过:

  • 使用
    WicketTester
    assertLabel
    方法,但它不能将
    链接
    强制转换为
    标签
  • 使用
    链接
    getModelObject()
    方法返回原始消息(即在将用户名格式化为原始消息之前)
  • 向消息添加id并直接通过路径访问它是不起作用的,因为我得到的消息是该路径不存在(您甚至可以为
    wicket:message
    元素提供id吗?)
有什么想法吗?

怎么样

WicketTester.getTagById(java.lang.String)
WicketTester.getTagByWicketId(java.lang.String)
?它们返回一个
TagTester
对象,并
TagTester.getValue()
返回此标记的值。这包括打开标记和关闭标记之间作为字符串的所有数据。然后,您可以对结果字符串使用assertEquals和您的期望值

TagTester link = WicketTester.getTagByWicketId("someLink");
assertNotNull(link);
String linkText = link.getValue();
asserEquals("Username is: " + username, linkText);
怎么样

WicketTester.getTagById(java.lang.String)
WicketTester.getTagByWicketId(java.lang.String)
?它们返回一个
TagTester
对象,并
TagTester.getValue()
返回此标记的值。这包括打开标记和关闭标记之间作为字符串的所有数据。然后,您可以对结果字符串使用assertEquals和您的期望值

TagTester link = WicketTester.getTagByWicketId("someLink");
assertNotNull(link);
String linkText = link.getValue();
asserEquals("Username is: " + username, linkText);
看起来不错:-)今天晚些时候我会试一试。谢谢看起来不错:-)今天晚些时候我会试一试。谢谢