将 JUnit 测试套件添加到 Spring MVC 应用程序

问题描述 投票:0回答:1

我想将 JUnit 测试套件添加到已经运行的 spring mvc 应用程序中。

我特别想测试控制器 API。

您可以推荐特定的程序吗?

我不想使用任何 spring-boot 库/解决方案。

提前致谢。

朱塞佩

spring spring-mvc junit5 spring-test mockmvc
1个回答
0
投票

我通常使用 JUnit 和 Mockito 测试控制器 API,如下所示。

@ExtendWith(MockitoExtension.class)
public class MemberApiControllerTest {
    @Mock
    private MemberService memberService;

    @InjectMocks
    private MemberApiController memberApiController;

    private MockMvc mockMvc;

    private ObjectMapper objectMapper;

    @BeforeEach
    public void setUp() {
        mockMvc = MockMvcBuilders.standaloneSetup(memberApiController)
            .build();

        objectMapper = new ObjectMapper();
    }

    @Test
    @DisplayName("Add Member Test")
    public void addMemberTest() throws Exception {
        //given
        Member member = Member.builder()
            .id("id")
            .password("password")
            .email("email")
            .nick("nick")
            .build();

        //when
        ResultActions resultActions = mockMvc.perform(post("/api/member")
                .contentType(MediaType.APPLICATION_JSON_VALUE)
            .content(objectMapper.writeValueAsString(member)));

        //then
        resultActions.andExpect(status().isOk());

        verify(memberService, times(1)).addMember(any(Member.class));
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.