标签: wicket-tester

如何在WicketTester中测试AjaxFormChoiceComponentUpdatingBehavior

在我的Wicket应用程序中,我使用了一个带有"是"和"否"选项的单选按钮.如果我选择"否",我应该显示一个下拉选项.我用的是代码AjaxFormChoiceComponentUpdatingBehavior.如何使用WicketTester进行单元测试?

java wicket wicket-tester

7
推荐指数
2
解决办法
4025
查看次数

WicketTester如何获取组件的html输出?

我想检查给定组件是否有CSS类集.为此,我想获得该特定组件的HTML输出.

WicketTester可以为整个呈现的页面提供HTML输出.获得Component的HTML/String输出的最佳方法是什么?

html wicket wicket-tester wicket-6

6
推荐指数
1
解决办法
1639
查看次数

如何使用WicketTester键入输入字段?

我正在为Wicket WebPage编写单元测试.我想启动一个页面,键入一个字段,单击一个链接,然后进行一些断言.

查看WicketTesterBaseWicketTester的API ,我找不到任何采用路径(如"form:input")来定位输入字段并允许您在其中输入文本的方法.

// set up WicketTester; create page
tester.startPage(page);
tester. // Type into input field - how to do this?
tester.clickLink("form:continueButton");
// assert something
Run Code Online (Sandbox Code Playgroud)

我错过了什么?这似乎是一个非常基本的用例.你不应该像这样使用WicketTester吗?(鉴于存在类似clickLink()的方法,这将是令人惊讶的.)

java unit-testing wicket wicket-tester

6
推荐指数
1
解决办法
2350
查看次数

Wicket页面测试,Jetty安全配置

我正在尝试使用Wicket Page Test来测试我的wicket项目.

启动测试会导致Jetty抛出此错误:

2015-03-24 17:46:24,789 WARN  [:] [main] [] [||] - org.eclipse.jetty.webapp.WebAppContext - Failed startup of context o.e.j.w.WebAppContext
java.lang.IllegalStateException: No LoginService for org.eclipse.jetty.security.authentication.BasicAuthenticator@4c451268 in org.eclipse.jetty.security.ConstraintSecurityHandler@4abb90f6
Run Code Online (Sandbox Code Playgroud)

我的testng套件看起来像这样:

<suite name="wicket-page-test-sample">
<test verbose="2" name="tests" annotations="JDK">
    <packages>
        <package name="..."></package>
    </packages>
    <classes>
        <class name="com.ttdev.wicketpagetest.WebPageTestContext"></class>
        <class name="nl.pack.test.MessagePanelTest"></class>
    </classes>
</test>
Run Code Online (Sandbox Code Playgroud)

测试类看起来像这样:

@Test
public class MessagePanelTest
{
    public void testOpenComponent()
    {

        final StringBuffer log = new StringBuffer();
        MockableSpringBeanInjector.mockBean("hibernateService", mock(HibernateService.class));

        WicketSeleniumDriver ws = WebPageTestContext.getWicketSelenium();
        ws.openComponent(new ComponentFactory()
        {
            private static final long serialVersionUID = 1L;

            public Component createComponent(String id) …
Run Code Online (Sandbox Code Playgroud)

java testng wicket jetty wicket-tester

5
推荐指数
0
解决办法
329
查看次数

使用Wicket Tester时,如何在单元测试中保持组件路径不变

我有几个wicket测试,它们针对可排序的DataTable,特别是ajax-单击可排序的列标题并断言渲染的主体行的内容.现在,表组件的后代的组件层次结构由wicket框架自动生成,并导致排序链接(ajax)的路径类似于:

table:topToolbars:toolbars:0:headers:1:header:orderByLink
Run Code Online (Sandbox Code Playgroud)

但是,当DataTable跨测试重新呈现时,工具栏组件的索引每次都会递增,即类似于:

table:topToolbars:toolbars:1:headers:1:header:orderByLink
Run Code Online (Sandbox Code Playgroud)

然后打破后续测试的硬编码路径,因为它们将不再匹配.

数据表构造的代码片段如下:

        final PayeesProvider dataProvider = new PayeesProvider();
    table = new DataTable<ResponsePayeeDetails>("payees", columns, dataProvider, rowsPerPage);
    table.setOutputMarkupId(true);
    table.addTopToolbar(new AjaxFallbackHeadersToolbar(table, dataProvider) {

        private static final long serialVersionUID = -3509487788284410429L;

        @Override
        protected WebMarkupContainer newSortableHeader(final String borderId, final String property, final ISortStateLocator locator) {
            return new AjaxFallbackOrderByBorder(borderId, property, locator, getAjaxCallDecorator()) {

                @Override
                protected void onRender() {
                    System.out.printf("Path: %s\n", this.getPageRelativePath());
                    super.onRender();
                }

                private static final long serialVersionUID = -6399737639959498915L;

                @Override
                protected void onAjaxClick(final AjaxRequestTarget target) {
                    target.add(getTable(), navigator, navigatorInfoContainer);
                }

                @Override …
Run Code Online (Sandbox Code Playgroud)

java datatable wicket wicket-tester

5
推荐指数
1
解决办法
817
查看次数

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

鉴于这个非常简单的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())));
    }
}
Run Code Online (Sandbox Code Playgroud)

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

java components unit-testing wicket wicket-tester

4
推荐指数
1
解决办法
4350
查看次数