【发布时间】:2017-04-30 09:51:11
【问题描述】:
我使用的是 Spring Boot 1.4.2。
我有一个服务注释如下
@Service
@ConditionalOnProperty("${my.property.enabled:false}")
public class MyService {
}
我想通过集成测试对其进行测试,例如
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment= SpringBootTest.WebEnvironment.RANDOM_PORT)
public class MyServiceTest {
@Autowired
private MyService myService;
}
该服务在测试中未自动装配。我想避免在测试文件夹内的属性文件中设置属性。我不能通过MyServiceTest 中的此类注释直接启用该属性吗?
【问题讨论】:
-
准确了解您要完成的工作会有所帮助。最好简单地为该测试创建一个
@Configuration类,专门声明一个@Bean MyService无条件。 -
这种方法看起来很有趣。如何在 MyServiceTest 中执行特定配置?
-
我不确定新的引导测试魔法是如何工作的;我通常使用
@ContextConfiguration。您可以尝试在测试类上声明一个(静态)@Configuration嵌套类,看看它是否被拾取。
标签: java spring spring-mvc spring-boot conditional