Jmock教程报错
教程如下:
https://www.cnblogs.com/hdwang/archive/2019/11/09/11826778.html
会报错说不能输入参数,最终分析得到:
import mockit.Capturing;
import mockit.Expectations;
import mockit.integration.junit4.JMockit;
import org.junit.Test;
import org.junit.runner.RunWith;
/**
* 接口模拟测试
*/
@RunWith(JMockit.class)
public class IUserServiceTest {
/**
* @Capturing 注解可以实现mock接口,所有实现类的实例均被mock
* @param base
*/
@Test
public void getUserNameTest002(@Capturing final IUserService base){
IUserService obj = new UserServiceImpl();
System.out.println(obj.getUserName()); //mock成功,返回模拟默认值null
//录制
new Expectations(){
{
base.getUserName();
result = "Jack";
}
};
System.out.println(obj.getUserName()); //Jack
obj = new IUserService() {
@Override
public String getUserName() {
return "Alice";
}
};
System.out.println(obj.getUserName()); //Jack
}
}
版本要求:1.30,不能太高
<dependency>
<groupId>org.jmockit</groupId>
<artifactId>jmockit</artifactId>
<version>1.30</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>