如何对自定义Wicket组件进行单元测试

时间:2011-07-11 14:20:19

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

鉴于这个非常简单的Wicket组件:

public class ProductImage extends WebComponent {

    public ProductImage(String id, Product p) {
        super(id, new Model(p));
        add(new AttributeModifier("src", true, new Model(p.getImage())));
    }
}

如何使用WicketTester对其进行单元测试?我需要一个页面吗?

2 个答案:

答案 0 :(得分:6)

在Wicket 1.5中有#startComponentInPage(Component),它将为您创建一个页面,以便您可以测试任何类型的组件。

答案 1 :(得分:3)

我实际上并没有这样做(我只有tested panels),但startComponent()似乎就是这样做的。

这样的事情:

Product product = new Product(/* initialize product here */);
ProductImage pi = new ProductImage("image", product);
tester.startComponent(pi);
tester.assertContains(Pattern.quote(product.getImage()));