本文主要是介绍Java代码——@Mock注入失效,注入对象始终为null,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
现象:
最近在使用Mock对象做单元测试,但是发现mock的对象始终为null.
代码如下:
package com.****.cache;import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import org.springframework.core.env.Environment;@RunWith(MockitoJUnitRunner.class)
public class ConfigCacheTest {@Mockprivate Environment environment;@Testpublic void test_initcache(){String []envArray = new String[]{"dev"};}}
通过debug模式,我们可以发现environment对象没有mock进去。
原因:
@Test导包有问题。我之前使用的是这个:
import org.junit.jupiter.api.Test; 但是当我换成下面这个就可以了。 import org.junit.Test;
修改后代码:
package com.*****.cache;import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import org.springframework.core.env.Environment;@RunWith(MockitoJUnitRunner.class)
public class ConfigCacheTest {@Mockprivate Environment environment;@Testpublic void test_initcache(){String []envArray = new String[]{"dev"};}}
通过debug模式可以看到对象正常mock出来了。
这篇关于Java代码——@Mock注入失效,注入对象始终为null的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!