【发布时间】:2016-12-07 07:54:05
【问题描述】:
我进行了以下单元测试,几乎可以正常工作:
@Test(expectedExceptions = {IllegalArgumentException.class}, expectedExceptionsMessageRegExp =
PasswordValidator.INVALID_PASSWORD)
public void testInvalidPasswordsThrowException() throws Exception {
for (String invalidPassword: getInvalidPasswords()){
new LaxPasswordValidator(invalidPassword);
}
}
private String[] getInvalidPasswords() {
return new String[] {INVALID_PASSWORD_1, INVALID_PASSWORD_2, INVALID_PASSWORD_3, INVALID_PASSWORD_4,
INVALID_PASSWORD_5, INVALID_PASSWORD_6, INVALID_PASSWORD_7, INVALID_PASSWORD_8, INVALID_PASSWORD_9,
INVALID_PASSWORD_10};
}
如您所见,它只是断言new LaxPasswordValidator(invalidPassword) 按预期工作并引发异常。
问题:它只是考虑到INVALID_PASSWORD_1,所以它在第一次迭代中停止;它启动异常但不继续检查其他密码。我怎样才能让它测试它们?谢谢
【问题讨论】:
标签: java unit-testing tdd testng