【问题标题】:How to test a link's text in Wicket如何在 Wicket 中测试链接的文本
【发布时间】:2014-07-20 05:37:43
【问题描述】:

我正在尝试在 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)) {
    ...
});

问题是我不知道如何测试链接的文本是否设置为用户名(在单元测试中)。
我试过了:

  • 使用WicketTesterassertLabel方法,但不能将Link转换为Label
  • 使用LinkgetModelObject() 方法返回原始消息(即在将用户名格式化之前)
  • 向消息添加 id 并直接通过路径访问它,因为我收到这条路径不存在的消息,所以不起作用(你甚至可以给 wicket:message 元素一个 ID 吗?)李>

有什么想法吗?

【问题讨论】:

    标签: java unit-testing tdd wicket wicket-tester


    【解决方案1】:

    怎么样

    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);
    

    【讨论】:

    • 我觉得不错 :-) 今天晚些时候我会试一试。谢谢!
    猜你喜欢
    • 2011-03-15
    • 1970-01-01
    • 1970-01-01
    • 2012-05-31
    • 1970-01-01
    • 2014-11-03
    • 2018-06-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多