我目前正在尝试创建存储库的部分模拟,但每当我尝试使用SpyBean注释JDBC存储库时,我都会遇到问题。
@RunsWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = ServiceApplication.class)
@ActiveProfiles("unit-test")
public abstract class TestBase {
@SpyBean
protected JdbcRepository jdbcRepository;
@Before
public void baseSetUp() throws Exception {
MockitoAnnotations.initMocks(this);
this.testContextManager = new TestContextManager(getClass());
this.testContextManager.prepareTestInstance(this);
this.classLoader = getClass().getClassLoader();
...
}
当我运行应用程序时,收到以下消息:
org.springframework.beans.factory.BeanCreationException:无法注入字段:protected com.sample.app.JdbcRepository不能有现有值
但是,我找到了几种避免错误的方法:
简而言之,我不确定为什么我的测试会抛出BeanCreationException。在类成员之上的@SpyBean注释不是使用间谍bean的正确方法吗?