单元测试与Spring框架
当进行单元测试的时候,需要给对象的依赖一个mock对象
但是对于Spring项目对象的私有成员,我们无法访问给他一个mock对象.这个时候我们就需要ReflectionTestUtils,他能够像Spring一样注入filed,通过手动给私有成员一个mock对象
public class ObjectA {
private String pwString;
public String getPwString() {
return pwString;
}
public void setPwString(String pwString) {
this.pwString = pwString;
}
}
被测试类
public class ObjectB {
private ObjectA objectA;
public ObjectA getObjectA() {
return objectA;
}
public void setObjectA(ObjectA objectA) {
this.objectA = objectA;
}
}
测试类
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
import org.junit.Test;
import org.springframework.test.util.ReflectionTestUtils;
public class testMockito {
@Test
public void test() {
ObjectB objectB = new ObjectB();
ObjectA objectA = mock(ObjectA.class);
when(objectA.getPwString()).thenReturn("hello A");
//"objectA"是通过成员变量名字确定的
ReflectionTestUtils.setField(objectB, "objectA", objectA);
ObjectA actucalA = objectB.getObjectA();
assertEquals("hello A", actucalA.getPwString());
}
}