源码地址:https://gitee.com/yk001/base.git
mockito 详细使用参考:https://zhuanlan.zhihu.com/p/45175174
1,导入jar包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-launcher</artifactId>
<version>1.5.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.1</version>
<scope>test</scope>
</dependency>
2,在test目录下创建一个抽象的测试类
package com.yukang.base;
import com.yukang.base.dao.repo.BaseEntityRepo;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import org.springframework.boot.test.context.SpringBootTest;
/**
* Date: 2020/12/8 6:35 下午<br/>
*
* @author yukang
*/
@SpringBootTest
@RunWith(MockitoJUnitRunner.class)
public abstract class AbstractTest {
@Mock
protected BaseEntityRepo baseEntityRepo;
}
3,创建一个测试类
package com.yukang.base.service;
import com.yukang.base.AbstractTest;
import org.junit.jupiter.api.Test;
import org.mockito.InjectMocks;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.Mockito.when;
/**
* Date: 2020/12/8 4:38 下午<br/>
*
* @author yukang
*/
public class BaseServiceTest extends AbstractTest {
@InjectMocks
private BaseService baseService;
@Test
void testDoSomething() {
// 设定参数
String param = "param";
// mock行为
when(baseEntityRepo.findById(1L)).thenReturn(null);
// 调用具体方法
String result = baseService.doSomething(param);
// 验证结果
assertEquals(param,result);
}
}