@Service
public class MyClass {
...
@Autowired
public MyClass(@Value("${my.value}") String myValue) {
...
}
...
}
我的测试类:
public class MyTest {
@Mock(name = "solrServer")
private SolrServer solrServer;
@InjectMocks
private MyClass myClassMock;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
}
@Test
....
}
我有一个解释如下:
org.mockito.exceptions.base.MockitoException: 无法实例化 @InjectMocks名为"myClassMock"的字段,类型为"类" 我的包裹。我的班级'。您尚未提供 字段声明中的实例,所以我尝试构造实例。 但是,构造函数或初始化块抛出了异常 :零
在我的包裹。MyTest.setUp(MyTest.java:46) ... 原因:java.lang.NullPointerException ...
如何从MyTest类注入@Value字段并修复它?
您可以通过手动创建类的实例在@Before
注释方法中执行此操作,如下所示:
public class MyTest {
@Mock(name = "solrServer")
private SolrServer solrServer;
@InjectMocks
private MyClass myClassMock;
@Before
public void setUp() {
myClassMock = new MyClass("value you need");
MockitoAnnotations.initMocks(this);
}
@Test
....
}