单元测试与Spring框架

单元测试与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());
    }
}

猜你喜欢

转载自blog.csdn.net/xfzero/article/details/79154364