【发布时间】:2021-04-01 15:38:48
【问题描述】:
我有一个简单的 CRUD 存储库,我正尝试在集成 (IT) 测试中使用...
@Repository
public interface ItemRepository extends CrudRepository<Item, String> { }
所以我创建了一个简单的测试来注入它...
@SpringBootTest(classes = {ItemRepository.class})
@RunWith(SpringJUnit4ClassRunner.class)
public class ItemRepoIT {
@Autowired
ItemRepository repo;
@Test
public void initialTest() throws JsonProcessingException {
// do something with repo
}
}
但是当我运行测试时,我得到...
引起:org.springframework.beans.BeanInstantiationException: 无法实例化 [some.pkg.ItemRepository]:指定的类是 接口在 org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:70) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1310) ... 41 更多
那么如何将其注入测试?
【问题讨论】:
-
@SpringBootTest(classes = {ItemRepository.class}) 你真的只想为上下文应用 ItemRepository
-
@Gurkanİlleez 所以这是一个嵌入在其他项目中的组件库。我仍然希望能够运行一些基本的集成测试,但是我不能使用整个 SpringBootApplication 或者它稍后会发生冲突(AFAIK)
标签: spring spring-data-jpa spring-test