Если все ваши тесты расширяют этот класс, вы можете просто поместить его в статический инициализатор.Это будет выполнено только один раз (когда класс загружен).
public class AbstractPamTest
{
protected static final String user;
protected static final String passwd;
protected static final String badPasswd;
static
{
user = System.getProperty("test.login");
passwd = System.getProperty("test.passwd");
if (user == null || passwd == null)
throw new IllegalStateException("Please define test.login and"
+ " test.passwd before running tests");
badPasswd = passwd + "x";
}
}
Или поместите его в совершенно другой класс, который используется / вызывается классами, которым требуется пароль / пользователь.Вам не нужно будет расширять AbstractPamTest.Кроме того, вы должны предоставить там getter / setter, чтобы вы могли изменить пользователя / пароль во время выполнения, если одному тестовому сценарию нужны разные значения.
private static String user;
private static String passwd;
private static String badPasswd;
static
{
user = System.getProperty("test.login");
passwd = System.getProperty("test.passwd");
if (user == null || passwd == null)
throw new IllegalStateException("Please define test.login and"
+ " test.passwd before running tests");
badPasswd = passwd + "x";
}
public static String getUser()
{
return user;
}
public static void setUser(String pUser)
{
user = pUser;
}
public static String getPasswd()
{
return passwd;
}
public static void setPasswd(String pPasswd)
{
passwd = pPasswd;
}