使用Mockito-mock,static方法
示例
public List<Authen> selectAuthenList(Authen authen) {
//静态方法
LoggedInUser loginUser = WebUtil.getLoggedInUser();
String tenantId = loginUser.getTenantId();
authen.setTenantId(Long.parseLong(tenantId));
//业务
return authenMapper.selectAuthenList(authen);
}
静态方法示例
public class WebUtil {
public static LoggedInUser getLoggedInUser() {
//方法逻辑
return;
}
}
测试方法
@RunWith(PowerMockRunner.class)
//要mock的静态类
@PrepareForTest(WebUtil.class)
@PowerMockIgnore("jdk.internal.reflect.*")
public class AuthenServiceImplTest extends BaseMockitoTest {
@InjectMocks
private AuthenServiceImpl authenService;
@Mock
private AuthenMapper authenMapper;
@Test
public void selectAuthenListTest() {
Authen authen = new Authen();
authen.setAppid("appId");
authen.setId(1L);
//返回需要的参数
LoggedInUser loggedInUser = new LoggedInUser();
loggedInUser.setTenantId("1234");
loggedInUser.setLoginName("loginName");
//注入要mock的类
PowerMockito.mockStatic(WebUtil.class);
//mock静态方法
PowerMockito.when(WebUtil.getLoggedInUser()).thenReturn(loggedInUser);
when(authenMapper.selectAuthenList(anyObject())).thenReturn(list);
List<Authen> authens = authenService.selectAuthenList(authen);
assertThat(authens.get(0).getAppid(),is("appId"));
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构