弹簧@Value在莫比托的田间注入


@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
    ....
}

相关内容

  • 没有找到相关文章

最新更新