单元测试与Spring框架
参考博客
源代码
当进行单元测试的时候,需要给对象的依赖一个mock对象
但是对于Spring项目对象的私有成员,我们无法访问给他一个mock对象.这个时候我们就需要ReflectionTestUtils,他能够像Spring一样注入filed,通过手动给私有成员一个mock对象
1 2 3 4 5 6 7 8 9 10 11 12
| public class ObjectA { private String pwString;
public String getPwString() { return pwString; }
public void setPwString(String pwString) { this.pwString = pwString; } }
|
被测试类
1 2 3 4 5 6 7 8 9 10 11 12 13
| public class ObjectB { private ObjectA objectA;
public ObjectA getObjectA() { return objectA; }
public void setObjectA(ObjectA objectA) { this.objectA = objectA; }
}
|
测试类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| 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"); ReflectionTestUtils.setField(objectB, "objectA", objectA); ObjectA actucalA = objectB.getObjectA(); assertEquals("hello A", actucalA.getPwString()); } }
|