我现在正在从事Spring Boot项目。
我想在扩展JpaRepository
的接口内测试自定义查询。这是我可以想到的代码:
@RunWith(SpringRunner.class)
@DataJpaTest
@AutoConfigureTestDatabase
public class CffRepositoryTest {
@Autowired
private TestEntityManager entityManager;
@Autowired
private CffRepository cffRepository;
@Test
public void saveCffTest() {
}
}
问题是CffRepository
不能为autowired
,因为找不到其中的Bean。我认为这是因为CffRepository
与MainApplication位于不同的模块中。这是我的项目结构:
有人可以帮助我解决这个问题吗?
答案 0 :(得分:1)
正如您提到的,问题是您没有在类路径中用@SpringBootApplication
注释的类,因此测试不知道从何处获取Spring配置。
您可以做的一件简单的事情就是在您的/test
目录中包含一个TestApplication类:
@SpringBootApplication()
public class TestApplication {
public static void main(String[] args) {
SpringApplication.run(TestApplication.class, args);
}
}
作为一个提示,您实际上不需要为生产中使用的所有功能启用自动配置。您只需使用测试所需的零件就可以摆脱困境。