当前位置: 首页> 房产> 家装 > 伊宁网站建设推广平台_牛商网上市了吗_想做网络推广如何去做_搜索引擎排行榜前十名

伊宁网站建设推广平台_牛商网上市了吗_想做网络推广如何去做_搜索引擎排行榜前十名

时间:2025/7/15 6:04:08来源:https://blog.csdn.net/m0_69886881/article/details/145747037 浏览次数:0次
伊宁网站建设推广平台_牛商网上市了吗_想做网络推广如何去做_搜索引擎排行榜前十名

问题再现:

这里我写了一测试用户注册接口的测试类,并通过when模拟下层的服务,但实际上when并没有奏效,还是走了真实的service层的逻辑。

package cn.ac.evo.review.test;import cn.ac.evo.review.user.UserMainApplication;
import cn.ac.evo.review.user.register.controller.UserRegisterController;
import cn.ac.evo.review.user.register.model.dto.RegisterDTO;
import cn.ac.evo.review.user.register.service.IUserRegisterService;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.test.web.servlet.MockMvc;import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.when;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;/*** @author urfread* @date 2025-02-20 09:34*/
@SpringBootTest(classes = UserMainApplication.class)
@AutoConfigureMockMvc
public class UserRegisterTest {@Autowiredprivate MockMvc mockMvc;private RegisterDTO registerDTO;@Mockprivate IUserRegisterService userRegisterService;  // 模拟服务层@BeforeEachpublic void setUp() {registerDTO = new RegisterDTO("3131015733@qq.com", "123456", "123456");}// 测试邮箱是否已注册@Testpublic void testCheckEmailRegisteredSuccess() throws Exception {// 模拟服务层返回的结果when(userRegisterService.checkEmailRegistered(registerDTO.getEmail())).thenReturn(true);mockMvc.perform(get("/api/user/register/checkEmailRegistered").param("email", registerDTO.getEmail())).andExpect(status().isOk()).andExpect(content().string("true"));}@Testpublic void testCheckEmailRegisteredFail() throws Exception {// 模拟服务层返回的结果when(userRegisterService.checkEmailRegistered(registerDTO.getEmail())).thenReturn(false);mockMvc.perform(get("/api/user/register/checkEmailRegistered").param("email", registerDTO.getEmail())).andExpect(status().isOk()).andExpect(content().string("false"));}
}

解决

只改一行就可以

@Mock
private IUserRegisterService userRegisterService;  // 模拟服务层

把这里的 @Mock 改为 @MockBean,然后 when 就又奏效了。
就是这么简单,有研究了20分钟。

关键字:伊宁网站建设推广平台_牛商网上市了吗_想做网络推广如何去做_搜索引擎排行榜前十名

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: