我有一个验证密码的方法。我有一个 JUnit 来实现这个功能。那里有一个包含所有可能无效密码的数组。我需要使用 参数化 JUnit 方法@MethodSource
。我猜应该是一种直接使用 参数化的方法String[]
,INVALID_PASSWORDS
然后我就可以摆脱该方法了invalidPasswords()
:
private static final String[] INVALID_PASSWORDS = { NON_DIGIT_PASSWORD, NON_SPECIAL_CHARACTER_PASSWORD,
NON_LOWER_CASE_PASSWORD, NON_UPPER_CASE_PASSWORD, SHORTER_THAN_8_PASSWORD, WITH_WHITESPACES_PASSWORD };
@ParameterizedTest
@MethodSource("invalidPasswords")
void When_invalidPassword_Expect_exceptionThrown(String value) {
Assertions.assertThrows(InvalidRequest.class, () -> Password.of(value.toString()));
}
private static Stream<String> invalidPasswords() {
return Arrays.stream(INVALID_PASSWORDS);
}
有什么想法吗?