多模块弹簧启动JPA应用程序
问题描述:
我就麻烦了重构单片应用到多模块结构:多模块弹簧启动JPA应用程序
-\
+ core (jpa domain entities, services, ...)
+ command-line-utils
+ web-app
我搬到类和配置的POM文件,使一切编译和Web应用程序正确执行。
我不明白如何进入核心模块的基本junit测试,我原来有:我不能停止有关丢失@Autowired存储库的错误。我知道我可能应该在核心模块中定义某种配置类(?)(我没有关于除了属性文件中的数据源参数之外的原始moloc中的持久性的任何特殊配置)。
答
我已经解决了(这个问题)定义在src/test/java
一个@SpringbootApplication
注解类测试类,@SpringApplicationConfiguration(class = MyTestApp.class)
引用。
通过这种方式,通常的弹簧启动魔术:-)
工作正常。
答
您可以在JUnit测试中定义配置。使用来自org.springframework.test.context
包的@RunWith(SpringJUnit4ClassRunner.class)
和@ContextConfiguration
注释。
在您的测试中,您可以根据需要使用Mock和静态类中的实际类定义配置,例如,
@Configuration
public static class Config {
@Bean
public RestOperations restTemplate() {
return mock(RestOperations.class);
}
....
}
您可以通过配置注释配置配置类上的所有bean,然后使用bean声明每个bean或在您尝试自动装配的每个类上添加服务(假设您的配置正在扫描您尝试的所有类自动装配 – jpganz18