【发布时间】:2015-06-03 08:33:24
【问题描述】:
如果在您的 TestCase 类中有这样的注释:
@SpringApplicationConfiguration(classes = {Application.class})
这将导致实现CommandLineRunner接口的Application.class运行所需的方法
public void run(String... args) throws Exception
我仍然认为这主要是不想要的行为,因为在您的测试环境中,您可能不想启动整个应用程序。
我想到了两个解决这个问题的方法:
- 从我的
Application类中删除CommandLineRunner接口 - 拥有不同的测试环境
这两种解决方案都需要大量编码。 你有更方便的解决方案吗?
【问题讨论】:
-
你能举一个你想测试的例子吗?如果您想在没有整个应用程序的情况下测试某些内容,则不需要注释。
-
我想测试整个应用程序(假设使用所有已注册的 bean)。由于
CommandLineRunner接口实现,我不喜欢整个应用程序启动。应该有一种方法可以在不启动run方法的情况下加载这样的应用程序类。 -
这正是我的观点,这是一个不需要的副作用,或者至少 SpringRunner 应该让你选择阻止它。并在测试中的所有内容都设置好后启动上下文。
标签: spring spring-boot