繁体   English   中英

Spring Boot-测试用例-不加载所有组件

[英]Spring Boot - Test Cases - Dont Load All Components

我试图在Spring MVC中休息我的休息课

如果我运行以下代码(当项目很小但现在失败时可以运行),它将尝试加载应用程序中的所有不同组件。 这包括与外部系统交互并需要凭据才能连接的bean

@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc
public class TestDummyRest extends BaseRestTestCase{

    @Autowired
    private MockMvc mockMvc;

    @MockBean
    private IDummyServices mockDummyServices;


    @Test
    public void getSendGoodMessage() throws Exception {

        given(mockDummyServices.sendGoodMessage(Mockito.anyString())).willReturn(true);

        mockMvc.perform(get("/dummy"))
                    .andExpect(status().isOk())
                    .andExpect(content().contentType(TEXT_PLAIN_CONTENT_TYPE));

        verify(mockDummyServices, times(1)).sendGoodMessage(Mockito.anyString());
    }
}

如何告诉测试类不要加载应用程序的@Configuration或@Component类?

除了只能在您的应用程序中不创建其他类之外,您还可以创建自己感兴趣的类,请参见15.6.1服务器端测试-设置选项

第二个方法是简单地手动创建控制器实例,而无需加载Spring配置。 相反,会自动创建基本的默认配置(可以大致与MVC JavaConfig或MVC命名空间的配置相媲美),并可在一定程度上进行自定义:

public class MyWebTests {

    private MockMvc mockMvc;

    @Before
    public void setup() {
        this.mockMvc = MockMvcBuilders.standaloneSetup(new AccountController()).build();
    }

    // ...

}

您需要为此使用@TestComponent@TestConfiguration ,如Spring doc 此处所述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM