@RunWith(MockitoJUnitRunner.class) @Slf4j public class PersonTest { @Test public void testPerson() { MockGetSetMethod(Person.class); } /** * @param tClass 需要生成覆盖率的实体类 * @param <T> 泛型 */ public <T> void MockGetSetMethod(Class<T> tClass) { try { Object obj = tClass.newInstance(); // 获取 obj 类的所有字段 Field[] fields = tClass.getDeclaredFields(); for (Field field : fields) { // 设置私有字段可访问 field.setAccessible(true); // 反射调用get方法 ReflectionTestUtils.invokeGetterMethod(obj, field.getName()); //根据不同类型mockSet方法 if (field.getType().equals(String.class)) { // String类型 ReflectionTestUtils.invokeSetterMethod(obj, field.getName(), "String"); } else if (field.getType().equals(Timestamp.class)) { //Timestamp类型 ReflectionTestUtils.invokeSetterMethod( obj, field.getName(), new Timestamp(System.currentTimeMillis())); } else if (field.getType().equals(Short.class)) { //Shot类型 ReflectionTestUtils.invokeSetterMethod( obj, field.getName(), Short.parseShort("1")); } else if (field.getType().equals(Integer.class)) { //Integer类型 ReflectionTestUtils.invokeSetterMethod( obj, field.getName(), Integer.valueOf(1)); } } } catch (SecurityException | InstantiationException | IllegalAccessException e) { log.info(e.getMessage()); } } }
标签:ReflectionTestUtils,SET,obj,GET,getName,getType,field,JavaMock,class From: https://www.cnblogs.com/mylbs123/p/18650444