1

我创建了一个 Stream 方法,其中包含我想在测试中传递的参数。我从 3 个不同的实体获取数据。我创建了两个对象(电子邮件、密码),我想在其中保存这些参数的值并将它们传递给登录方法。问题是它们始终为空。

@ParameterizedTest
@MethodSource("adminCredentials")

@Test
void loginSysAdmin() {
    adminWelcomePage.loginAdminParameters(email, password);
    adminHomePage.verifyLoggedSysAdminNameAndRole(sysAdminEntity);
    // by default
    usersPage.verifyUsersPage();
    adminHomePage.verifyUsersTabIsPresent();
    adminHomePage.verifyScreeningsTabIsPresent();
    adminHomePage.verifyAdminsTabIsPresent();
    adminHomePage.verifyAccountsTabIsPresent();
    adminHomePage.verifyLocationsTabIsPresent();
}


private Stream<Arguments> adminCredentials() {
    return Stream.of(
            Arguments.of(email = sysAdminEntity.getEmail(), password = sysAdminEntity.getPassword()),
            Arguments.of(email = accAdminEntity.getEmail(), password = accAdminEntity.getPassword()),
            Arguments.of(email = regularAdminEntity.getEmail(), password = regularAdminEntity.getPassword())
    );
}

}

在此处输入图像描述

4

1 回答 1

1

您忘记将参数传递给您的测试方法。

@ParameterizedTest
@MethodSource("adminCredentials")
void loginSysAdmin(String email, String password) {
    // test code
}

几乎总是有一篇关于参数化测试的非常好的 Baeldung 文章。@MethodSource看看Section Method 。

于 2021-03-06T07:45:43.780 回答