关于java:如何在Spring boot中使用Mockito和JUnit测试DELETE方法
How to test DELETE method in Spring boot using Mockito and JUnit
在 Spring Boot 框架中,我发现使用 JUnit 和 Mockito 进行控制器单元测试的困难。我想测试这个方法。如何测试 DELETE 请求方法:
// 删除应用程序
控制器类
|
1
2 3 4 5 |
@DeleteMapping("/applications")
public String deleteApplicationByObject(@RequestBody Application application) { applicationService.deleteById(application.getId()); return"Deleted"; } |
// 删除应用程序
服务类
|
1
2 3 4 5 6 |
@Override
@Transactional public String removeById(Long id) { dao.deleteById(id); return"SUCCESS"; } |
// 删除应用程序
道类
|
1
2 3 4 5 |
@Override
public void deleteById(Long id) { Application application = findById(id); em.remove(application); } |
提前谢谢你。
相关讨论
- 您如何在 Spring Boot 应用程序上测试任何 http 方法?您使用 MockMvc 还是 RestAssured - 您是否向它发送 HTTP 请求?或者您是否尝试直接调用该方法以确保它调用 applicationService.deleteById(application.getId());?
- 我正在使用 mockito 和 Junit 进行单元测试,我正在使用 MockMvc 来测试我的控制器方法,但是当我尝试调用方法 applicationService.deleteById(application.getId( ));
- 你可以为控制器类发布你的测试类吗
- 在这里,我的测试控制器类 @Test \tpublic void deleteApplication() throws Exception {\t\t \t\tMockito.when(applicationService.removeById(10001L)).thenRe??turn("SUCCESS"); \t\tmockMvc.perform(MockMvcRequestBuilders.delete("/applicio??ns")) \t\t\t\t.andExpect(status().isOk()); \t}
过了一会儿,我能够找到我的问题的解决方案,
ApplicationControllerTest.class
|
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
package com.spring.addapplication.test.controller;
import static org.mockito.MockitoAnnotations.initMocks; import java.util.ArrayList; import org.junit.Before; import com.fasterxml.jackson.databind.ObjectMapper; @RunWith(SpringJUnit4ClassRunner.class) @Mock private MockMvc mockMvc; @Before @Test |