Mam kilka testów frekwencji, które są ukierunkowane na sortowalną tabelę DataTable, w szczególności klikanie ajaxem na sortowalne nagłówki kolumn i potwierdzanie zawartości wierszy wyświetlanych brył. Teraz składnik hierarchia potomków tabeli Component jest automatycznie generowane przez ramy przejściowymi, a wyniki w ścieżkach do linków sortujących (Ajax) podobnych do:W jaki sposób utrzymywać stałe ścieżki komponentów w testach jednostkowych przy korzystaniu z testera testów Wicket Tester
table:topToolbars:toolbars:0:headers:1:header:orderByLink
Jednak gdy DataTable zostanie ponownie wygenerowana w poprzek testów indeks elementu pasków narzędzi jest zwiększany za każdym razem, czyli podobny do:
table:topToolbars:toolbars:1:headers:1:header:orderByLink
który następnie łamie twarde kodowane ścieżki testów kolejnych jak nie będą już takie same.
Fragment kodu dla DataTable budowy jest następująca:
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);
Aby być precyzyjnym, kiedy biegnę moich testów, powyższy System.out.printf drukuje oświadczenie:
(1st testowe)
Path: payees:topToolbars:toolbars:0:headers:1:header
Path: payees:topToolbars:toolbars:0:headers:2:header
(2-ga Test)
Path: payees:topToolbars:toolbars:2:headers:1:header
Path: payees:topToolbars:toolbars:2:headers:2:header
(3rd Test)
Path: payees:topToolbars:toolbars:4:headers:1:header
Path: payees:topToolbars:toolbars:4:headers:2:header
(4-ty Test)
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
(5-ty Test)
Path: payees:topToolbars:toolbars:8:headers:1:header
Path: payees:topToolbars:toolbars:8:headers:2:header
Czy ktoś wie jak mogę zmusić generowanie indeksu, aby być bardziej deterministyczny/powtarzalny. Alternatywnie, czy istnieje sposób na dzikie granie w kartach lub w inny sposób uogólnianie ścieżki, aby uczynić je odpornymi na te przyrosty?
Każda pomoc będzie bardzo doceniana, chłopaki!
Dzięki za bardzo jasne wyjaśnienie Patricia. –