如何在我的异常类中模拟班级?



我必须在 MyException 类中访问 ApplicationContext

public class MyException extends Exception {
public MyException(Map<String, Map<String,String>> errorObj) throws IOException {
ApplicationContext applicationContext = ApplicationContextProvider.getApplicationContext();
Environment env = applicationContext.getEnvironment();
...
}
}

而这项服务抛出它。

@Service
public class MyServiceImpl implements MyService {
@Override
public Response myFunction() {
throw new MyException(errorObj);
...
}
}

编辑这是应用程序上下文提供程序

public class ApplicationContextProvider implements ApplicationContextAware {
private static ApplicationContext context;
public static ApplicationContext getApplicationContext(){
return context;
}
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
context = applicationContext;
}
}

当我运行unittest时,我在ApplicationContext上得到了NullPointerException。我想模拟应用程序上下文如何做到这一点?

我发现此错误只是单元测试,但是当我使用 spring-boot:run 运行时,它工作正常

您可以在测试类中使用 SpringBootTest 注释,该注释创建一个包含测试所需的所有对象的应用程序。

最新更新