如何解决如何在参数化测试的方法中传递动态流参数 (Junit5)
我创建了一个 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())
);
}
}
解决方法
您忘记将参数传递到您的测试方法中。
@ParameterizedTest
@MethodSource("adminCredentials")
void loginSysAdmin(String email,String password) {
// test code
}
几乎总是有关于参数化测试的非常好的 Baeldung 文章。对于 @MethodSource
,请查看 ceiling。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。