首页 > 解决方案 > 模拟 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;
}

标签: springspring-bootmockitojunit4

解决方案


推荐阅读