spring - 模拟 Autowired 静态场
问题描述
我正在尝试模拟一个静态 Autowired 字段,但在执行 JunitTest 的测试方法中出现空指针异常。下面是我的源代码和测试类代码片段。
public class MyUtil {
private static Logger log = LoggerFactory.getLogger(MyUtil.class);
private static MyLogger myLogger;
@Autowired
private MyLogger tMyLogger;
@PostConstruct
public void init() {
ModelUtil.myLogger = tMyLogger;
}
public static String getSomething(String foo) {
if (foo != null) {
myLogger.log(foo);
}
}
MyLoggerTestClass 如下:
@RunWith(SpringJUnit4ClassRunner.class)
public class MyUtilTest {
private static MyLogger myLoggerMock;
@Mock
private MyLogger tMyLoggerMock;
@PostConstruct
public void init() {
ModelUtilTest.myLoggerMock = tMyLoggerMock;
}
解决方案
推荐阅读
- reactjs - 正确的键使用反应
- google-apps-script - 从单元格获取范围并应用于 getRangeList
- html - 如何阻止子段落在css网格内拉伸父div
- java - Appium - Real Me 3 Pro 设备:禁止获取 java.lang.securityexception adb 清除用户数据
- java - 在 Java 中,如何为扩展 Comparator 的类实现多个比较器方法?
- android-camera-intent - 在 Android 11 R 中,Camera REQUEST_CODE 返回零
- linq - 在 sql 列表中搜索
? - flutter - 如何查找在 FutureBuilder 中呈现的 GridView 的高度
- python - Django Query 在 python shell 上工作,但在模板和表单中不起作用
- apache-spark - spark-shell 的 Apache Hudi 示例为 Spark 2.3.0 引发错误