如何在等待断言时避免长时间等待?

问题描述

我正在测试菜单项是否不存在(这很重要,因为我想检查是否正确满足了隐藏该菜单项的条件)。因此,我在SWTBotRootMenu#contextMenu(String text) throws WidgetNotFoundException中呼叫org.junit.jupiter.api.Assertions.assertThrows

但是,拥有许多这样的测试会使测试运行非常缓慢,因为WidgetNotFoundException似乎只是在5秒钟的超时后才抛出。

是否可以将超时设置为较短的值?还是完全避免以其他方式等待?

解决方法

如果您只想检查菜单中是否缺少项目,则可以获取整个菜单的内容SWTBotRootMenu#contextMenu()并执行基本检查,以查看是否存在被测项目。

SWTBotRootMenu context = menu.contextMenu();
assertFalse(context.menuItems().contains(text));