用Mockito mock当前类【同一类】中的方法
程序员文章站
2024-01-27 09:47:16
...
这个问题纠结我很久,参考自 点击链接
直接上代码:
- 被mock类
public class Person {
private String name;
private int age; public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public boolean runInGround(String location) {
if(location.equals("ground")) {
System.out.println("The person runs in the " + location);
return true;
} else {
System.out.println("The person doesn't run in the " + location);
return false;
}
}
public boolean isPlay() {
if(this.runInGround("ground")) {
System.out.println("The person plays.");
return true;
}
else {
System.out.println("The person doesn't play");
return false;
}
}
}
2.Test类
import org.junit.Assert;
import org.junit.Test;
import org.mockito.Mockito;
public class PersonTest{
@Test
public void playTest() {
Person person = new Person("name", 15, "23435678V");
Person person1 = Mockito.spy(person);
Mockito.doReturn(true).when(person1).runInGround("ground");
Assert.assertEquals(true, person1.isPlay());
}
}
主要起作用的是这句代码:
Mockito.doReturn(true).when(person1).runInGround("ground");
给出方法返回值,调用的打桩类对应mock方法,就有意想不到的结果。
感谢这位博主的分享
上一篇: 关于c++模板的一些问题
推荐阅读
-
用Mockito mock当前类【同一类】中的方法
-
同一个类中无事务方法调用同一个类的有事务方法问题原因及其解决方法
-
在Python 中同一个类两个函数间变量的调用方法
-
梳理:python—同一个类中的方法调用
-
在Python 中同一个类两个函数间变量的调用方法
-
SpringCache @Cacheable 在同一个类中调用方法,导致缓存不生效的问题及解决办法
-
在同一个类中调用另一个方法没有触发 Spring AOP 的问题
-
在同一个类中调用另一个方法没有触发 Spring AOP 的问题
-
@Transactional 无事务a()方法中调用同一个类的有事务b()方法问题
-
用反射的方式获取父类中的所有属性和方法