spring-boot - 如何在我的异常类中模拟一个类?
问题描述
我必须在 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);
...
}
}
编辑这是 ApplicationContextProvider
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。我想模拟 ApplicationContext 怎么做?
我发现这个错误只是单元测试,但是当我使用 spring-boot:run 运行时它工作正常
解决方案
您可以在测试类中使用SpringBootTest注释,它创建一个包含测试所需的所有对象的应用程序内容。
推荐阅读
- php - 从特定的 Google Drive 文件夹中获取文件
- mule - 如何在 Mule 应用程序中进行删除流程?
- javascript - 使用 push() 将一个数组复制到另一个数组
- amazon-web-services - DynamoDB 更新列表项列表
- android - 动态更改约束android
- qlikview - Qlik Sense - AGGR
- java - Hibernate 无法使用 upper() 解析 count()
- swift - 未解决的标识符错误“imageArray”
- json - 将 JSON 转换为 TS 对象
- javascript - ScrollTo 触发太早导致无法一直滚动