junit mockito service

service类单元测试可以有两种方式

1、使用@Autowired启用上下文的Bean走业务逻辑,适用于debug调试

2、使用@InjectMocks不启用上下文依懒的Bean采用打桩的形式

打桩注意:service通常业务逻辑复杂,Bean的依懒层次可能很深,初用者常犯的问题是想一个测试方法全部测到,虽然有些可以给字段属性赋值的方法来深层次打桩,但难免会有各种各样的困难,初用者在依懒层次很深时可以把不好打桩依懒单独写单元测试

继承的基类MockBaseTest请参考本人文章junit mockito Base基类

java 复制代码
@RunWith(PowerMockRunner.class)
@PrepareForTest({Date.class})
public class AccountServiceTest extends MockBaseTest {
	@InjectMocks
	private AccountService accountService;
	HttpServletRequest request = new MockHttpServletRequest();

	@Before
	public void init() {
		MockitoAnnotations.initMocks(this);
	}

	@Test
	public void testAccount_check() throws Exception {
		((MockHttpServletRequest) request).setParameter("version","0.1.0");
		Date currDate = DateUtils.parse("2024-01-24 08:00:00",DateUtils.DATE_FORMATE_PATTERN);
		PowerMockito.whenNew(Date.class).withAnyArguments().thenReturn(currDate);
		AccountVO vo = accountService.queryAccount(1L, VersionUtils.getCurrVersion(request));
		Assert.assertEquals("0.1.0", vo.getVersion());
	}

}
相关推荐
weixin_3077791315 分钟前
C++代码实现MATLAB中的spectralcluster函数功能
开发语言·c++·算法·matlab
鸽鸽程序猿15 分钟前
【项目】【在线判题系统】c端:竞赛报名
c语言·开发语言
wangjialelele16 分钟前
一文梳理 Spring Cloud 核心组件:Eureka、Nacos、OpenFeign、LoadBalancer 与 Gateway
java·spring boot·spring·spring cloud·微服务·nacos
用户62228840481919 分钟前
站在JDK的角度理解线程池:从execute 到 getTask 一篇讲透
java·面试
Wang's Blog19 分钟前
Java 项目实战: 交友项目 - 个人资料管理的需求分析与接口设计
java·开发语言·交友
北风toto22 分钟前
Linux 服务器如何判断 CPU 是否支持 x86-64-v2 指令集
java·linux·服务器
1024奇点24 分钟前
【仓颉语言入门 · 第二篇 第 8 课】
开发语言·数据库·ide·mysql·开源
萧瑟余晖26 分钟前
Spring Security综合实战与安全加固详解
java·安全·spring
gopher951138 分钟前
RUST:序列化与反序列化 serde + derive 详解
开发语言·后端·rust
imDwAaY40 分钟前
操作系统如何管理程序运行?从线程、进程到内存隔离与用户态切换:CS162 Note2
android·java·redis