那是一段 servlet 代码。我不知道如何通过模拟来覆盖它。我创建了像 ServletConfig、LoginServiceFactory 和 LoginService 这样的模拟对象,但我不知道如何为 Class.forName 创建模拟。那是调用的静态方法和其他方法,如 newInstance 或 getConstructor。我试图在模拟中调用 lsf.getClass().newInstance() expect 但它没有用。你知道如何解决它吗?提前致谢。
public void init(ServletConfig config) throws ServletException {
super.init(config);
try {
String loginServiceFactoryName = config
.getInitParameter("LoginServiceFactory");
LoginServiceFactory lsf = (LoginServiceFactory)
Class.forName(loginServiceFactoryName).getConstructor().newInstance();
UserDataBase db = lsf.getUserDataBase();
Encoder encoder = lsf.getEncoder();
loginService = new LoginService(db, encoder);
}