java - Vaadin 使用 JUnit 测试过滤器

标签 java junit filter vaadin

我目前正在努力进行 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/

相关文章:

java - 我可以查看该程序的另一个示例吗?我很难理解它

junit - 如何仅对具有自定义注释的测试运行junit?

java - JUnit:运行套件和单独运行测试之间有什么区别吗?

java - 是否有一个 junit 扩展来记录每次测试所用的内存

javascript - jquery 在查找或过滤之前返回到元素

java - 旋转后的矩形坐标

java - 将 recyclerView 焦点/滚动到最后一个项目

java - Android ContentResolver.update() 产生重复项

Java 8 toMap 用于映射 <string, Collection<String>>

servlets - 在 Servlet 过滤器中设置响应代码