Tengo varias pruebas de wicket que se dirigen a una tabla de datos clasificable, específicamente ajax-haciendo clic en los encabezados de columnas ordenables y afirmando el contenido de las filas de cuerpos representados. Ahora, la jerarquía de componentes de los descendientes del componente de tabla es generada automáticamente por el marco de ventanilla, y los resultados en los caminos a los enlaces de clasificación (Ajax) similares a:¿Cómo puedo mantener rutas de componentes constantes en las pruebas unitarias cuando uso Wicket Tester?
table:topToolbars:toolbars:0:headers:1:header:orderByLink
Sin embargo, cuando el DataTable se re-prestados a través de las pruebas, el índice de la componente de barras de herramientas se incrementa cada vez es decir, similar a:
table:topToolbars:toolbars:1:headers:1:header:orderByLink
que luego rompe las rutas rígida de las pruebas subsiguientes ya que ya no coincidirán.
El fragmento de código para la construcción tabla de datos es el siguiente:
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
protected void onSortChanged() {
super.onSortChanged();
getTable().setCurrentPage(0);
}
};
}
});
table.addBottomToolbar(new NoRecordsToolbar(table));
add(table);
Para ser más precisos, cuando corro mis pruebas, la impresora declaración anterior: System.out.printf
(primera prueba)
Path: payees:topToolbars:toolbars:0:headers:1:header
Path: payees:topToolbars:toolbars:0:headers:2:header
(segunda prueba)
Path: payees:topToolbars:toolbars:2:headers:1:header
Path: payees:topToolbars:toolbars:2:headers:2:header
(tercera prueba)
Path: payees:topToolbars:toolbars:4:headers:1:header
Path: payees:topToolbars:toolbars:4:headers:2:header
(cuarta prueba)
Path: payees:topToolbars:toolbars:6:headers:1:header
Path: payees:topToolbars:toolbars:6:headers:2:header
Path: payees:topToolbars:toolbars:6:headers:1:header
Path: payees:topToolbars:toolbars:6:headers:2:header
Path: payees:topToolbars:toolbars:6:headers:1:header
Path: payees:topToolbars:toolbars:6:headers:2:header
(quinta prueba)
Path: payees:topToolbars:toolbars:8:headers:1:header
Path: payees:topToolbars:toolbars:8:headers:2:header
¿Alguien sabe cómo me puede obligar a la generación de índices a ser más determinista/repetible Alternativamente, ¿hay alguna forma de comodín o de generalizar el camino, para que sean inmunes a estos incrementos?
Cualquier ayuda será muy apreciada, ¡chicos!
Gracias por la explicación muy clara Patricia. –