Sneferu

作者: Mario David
4.5
0

Sneferu 是一个测试库,用于简化 Jmix 应用程序的集成测试。其 API 支持使用高级别的测试语言编写 UI 界面的交互和验证。

简介

无需花费大量的时间和成本维护 selenium 测试套件,Sneferu 以极低的成本提供很好的测试覆盖率和质量保障。

通过其易于理解的语言,您可以创建高可读性的集成测试用例,这对于保持测试套件的可维护性和低成本至关重要。

Sneferu 特性:

  • 验证界面控制器中的任何业务逻辑
  • 确保界面 XML 及其控制器之间的正确链接
  • 验证任何以编程方式创建的“界面组件/对话框”的正确显示
  • 验证声明式的数据加载

Sneferu 不涵盖的内容:

  • 仅在浏览器中执行的客户端 Vaadin UI 逻辑(例如展示日期选择器中的弹窗)
  • 验证浏览器中的渲染问题

Example

import de.diedavids.sneferu.UiTestAPI;
import de.diedavids.sneferu.SneferuUiTest;
import static de.diedavids.sneferu.ComponentDescriptors.*;
import static de.diedavids.sneferu.Interactions.*;
import static org.assertj.core.api.Assertions.assertThat;
@SpringBootTest
@SneferuUiTest(authenticatedUser = "admin", mainScreenId = "petclinic_MainScreen", screenBasePackages = "io.jmix.petclinic")
class FirstSneferuTest {
    @Test
    void openScreen_clickButton_verifyWhichScreenIsActive(UiTestAPI uiTestAPI) {
        // given:
        final StandardLookupTestAPI<Visit, VisitBrowse> visitBrowse = uiTestAPI.openStandardLookup(Visit.class, VisitBrowse.class);
        // when:
        visitBrowse.interact(click(button("createBtn")));
        // then:
        assertThat(uiTestAPI.isActive(uiTestAPI.getOpenedEditorScreen(VisitEdit.class))).isTrue();
    }
}