我目前正在努力进行 JUnit 测试。我认为 Vaadin 表会简单地将那些与过滤器不匹配的条目标记为不可见。所以我想我可以通过将过滤器应用于表然后检查 table.getVisibleItemIds(); 来进行测试来测试我的过滤器。但即使我尝试了一些方法,它仍然返回一个空列表。我的目标是比较过滤器返回了哪些项目。
Table table = new Table();
IndexedContainer indexedContainer = new IndexedContainer();
table.setContainerDataSource(indexedContainer);
table.addContainerProperty(TableColumns.NAME, String.class, " ");
table.setColumnHeader(TableColumns.NAME, "name");
this.addTestDataToTable(table);
TableSearchFilter filter = new TableSearchFilter(searchString);
indexedContainer.addContainerFilter(filter);
return table.getVisibleItemIds();
最佳答案
Vaadin 容器仅“包含”当前过滤、订购等的项目。
.getVisibleItemsIds()
指的是实际上可见的,就像眼睛一样,行:是旧的遗留方法,如果您的真正目的是知道哪些行确实可见,则应该避免使用它。你得到空/空,因为在你的测试中你从未附加你的表,因此不是真正的“可见”或大小为零。
回到你的问题,解决方案就是
.getItemIds()
您将获得容器中已过滤和排序的所有项目的 ID。
干杯
关于java - Vaadin 使用 JUnit 测试过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26776207/