我对集成测试API有一些疑问

时间:2020-05-24 15:56:23

标签: java spring api unit-testing integration-testing

我正在使用Spring开发API,这是我的首次集成测试。

假设我的API有一个User类,每个CRUD端点都有一个服务,一个控制器带有一个存储库来管理所有这些。

我应该为每个端点一个集成测试创建有关其控制器,服务和存储库的信息吗?如果是这样,这与对单个控制器进行单元测试有什么不同?例如,这是我的RestCreateUserTest.class

@RunWith(SpringRunner.class)
@WebMvcTest(UserCreateRest.class)
public class RestCreateUserTest {

    @Autowired
    private MockMvc mvc;

    @MockBean
    private UserCreateService service;

    @Test
    public void createUser_whenPostUser() throws Exception {

        User user = new User();
        user.setName("Test Name");

        given(service.create(Mockito.any())).willReturn(user);

        mvc.perform(post("/users")
                .contentType(MediaType.APPLICATION_JSON)
                .content(JsonUtil.toJson(user)))
                .andExpect(status().isCreated())
                .andExpect(jsonPath("$.name", is(user.getName())));
    }
}

如您所见,我正在连接我的存储库,服务和控制器以测试单个端点。 如果有人可以在此处提供一些指导,将不胜感激。

0 个答案:

没有答案