SpringBootTest测试时如何不启动程序?

我用SpringBootTest做测试时,发现会启动程序,导致控制台测试结果被程序输出给淹没了,而且程序启动也会耗费时间资源,有什么办法SpringBootTest测试时如何不启动程序?

我的测试程序中,会加下面注解

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = MainApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)

感觉是因为有classes = MainApplication.class所以启动程序
但是如果不加上,又无法找到其他要用到的bean注入

阅读 10.7k
2 个回答

单元测试本身就不依靠人工看控制台输出
需要用到bean,当然要起spring
以及,spring启动的输出 和 单个@Test 的输出是可以分开看的

如果是Web应用的话,测试类可以这么写:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = MockServletContext.class)
@WebAppConfiguration
public class UserControllerTest {

    private MockMvc mockMvc;

    @Before
    public void before() {
        this.mockMvc = MockMvcBuilders.standaloneSetup(new UserController()).build();
    }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题