我们在out项目中使用Spring Framework 4.3.14-RELEASE。我们的应用程序的结构如下:
parent \
module-one
module-two
...
module-n
现在,我们正在尝试在其中一个模块中编写一些集成测试,并且面临下一个问题:需要对Spring Data JPA存储库进行监视。
在Spring Boot中,我们有@SpyBean
和@MockBean
批注,但在常规的Spring Framework中不可用。我们无法迁移到Spring Boot。
我们试图将spring-boot-test
和spring-boot-test-starter
添加到我们的项目中,但是很明显,它没有用:依赖项没有出现在类路径中。
我的问题是:是否可以在常规项目中使用这些注释?还是其他监视Spring Data JPA存储库的方法?
更新:示例
@Service
public void MegaService {
@Autowired
MegaRepository repository;
// ....
}
public interface MegaRepository extends JpaRepository<MegaModel, Long> {
// ...
}
@Configuration
public class TestRepoConfiguration {
@Bean
MegaRepository megaRepository(MegaRepository repository) {
return Mockito.spy(repository); // of course, it does not work
}
}
@RunWith(SpringJUnit4ClassRunner.class)
public class MegaIntegrationTest {
@Autowired
MegaRepository repository;
public void testMegaLogic() {
when(repository.findAll()).thenAnswer(invocation -> {
System.out.println("Hello, comrades");
return invocation;
});
}
}
答案 0 :(得分:0)