public class Mock extends Object
使用静态方法:set(Class, Map) 来添加一个类的假数据类型映射
语法基本与Mock.js中的类似,字符串参数中可以使用@+方法名的方式指定随机方法(随机方法详见MockUtil,此类也可以直接使用)
为类中的引用类型对象赋值的时候,有两种方式:
map.set("user" , new HashMap)
-> 即为字段再配置一个map映射集合
map.set("user.name" , "@cname")
-> 使用"."分割,即使用多层级对象赋值,此方式需要保证引用类型的对象有无参构造,且字段有getter方法
| Constructor and Description |
|---|
Mock() |
| Modifier and Type | Method and Description |
|---|---|
static Map<String,Method> |
_getMockMethod()
Deprecated.
|
static <T> MockObject<T> |
get(Class<T> objClass)
获取一个实例对象
|
static <T> MockObject<Map> |
get(String resultName)
获取一个实例对象
|
static Map.Entry<String,Method> |
getMockMethodByFilter(Predicate<? super Map.Entry<String,Method>> predicate)
根据过滤条件寻找指定的string-method
|
static Map<String,Method> |
getMockMethods()
获取Mock方法集合
|
static MethodLoader |
mockMethodLoader()
获取方法加载器
|
static <T,C extends Class<T>> |
proxy(C type)
为一个接口提供一个代理对象。此接口中,所有的 抽象方法 都会被扫描,假如他的返回值存在与Mock中,则为其创建代理。
|
static <T> T |
proxy(Class<T> type,
MockProxyHandlerFactory factory)
为一个接口提供一个代理对象。此接口中,所有的 抽象方法 都会被扫描,假如他的返回值存在与Mock中,则为其创建代理。
|
static <T> void |
reset(Class<T> objClass)
通过注解来获取映射
|
static <T> void |
reset(Class<T> objClass,
Map<String,Object> map)
添加数据记录,如果要添加的映射已存在,则会覆盖
|
static <T> void |
reset(String resultName,
Map<String,Object> map)
添加数据记录,如果要添加的映射已存在,则会覆盖
|
static <T> void |
resetWithOther(Class<T> objClass,
Map<String,Object> other)
通过注解来获取映射, 并提供额外的、难以用注解进行表达的映射参数
|
static Set<Class<?>> |
scan(boolean reset,
String... packages)
|
static Set<Class<?>> |
scan(ClassLoader classLoader,
Function<Class<?>,Map<String,Object>> withOther,
boolean reset,
String... packages)
扫描包路径,加载标记了
MockBean注解的类。 |
static Set<Class<?>> |
scan(Function<Class<?>,Map<String,Object>> withOther,
boolean reset,
String... packages)
|
static Set<Class<?>> |
scan(String... packages)
scan(ClassLoader, Function, boolean, String...)的重载方法
reset默认为false |
static <T> void |
set(Class<T> objClass)
通过注解来获取映射
|
static <T> void |
set(Class<T> objClass,
Map<String,Object> map)
添加数据记录,如果要添加的映射已存在,则会抛出异常
|
static void |
set(String resultName,
Map<String,Object> map)
添加数据记录,如果要添加的映射已存在,则会抛出异常
|
static <T> MockObject<T> |
setAndGet(Class<T> objClass)
|
static <T> MockObject<T> |
setAndGet(Class<T> objClass,
Map<String,Object> map)
|
static MockObject<Map> |
setAndGet(String resultName,
Map<String,Object> map)
|
static <T> MockBean<T> |
setResult(Class<T> objClass,
Map<String,Object> map,
boolean reset)
添加一个数据映射
|
static MockMapBean |
setResult(String resultName,
Map<String,Object> map,
boolean reset)
添加一个map类型的映射
|
static <T> void |
setWithOther(Class<T> objClass,
Map<String,Object> other)
通过注解来获取映射, 并提供额外的、难以用注解进行表达的映射参数
|
public static <T> MockBean<T> setResult(Class<T> objClass, Map<String,Object> map, boolean reset)
objClass - 映射类型map - 映射对应值public static MockMapBean setResult(String resultName, Map<String,Object> map, boolean reset)
resultName - 映射名map - 映射值reset - 是否覆盖public static <T> void set(Class<T> objClass, Map<String,Object> map)
objClass - 映射的classmap - 映射的规则对象
MockUtil)
如果映射的对象中有多层级对象,支持使用多层级字段映射,例如:
map.put("friend.name" , "@cname");
public static <T> MockObject<T> setAndGet(Class<T> objClass, Map<String,Object> map)
public static <T> void set(Class<T> objClass)
public static <T> MockObject<T> setAndGet(Class<T> objClass)
public static <T> void setWithOther(Class<T> objClass, Map<String,Object> other)
public static void set(String resultName, Map<String,Object> map)
resultName - map - public static <T> void reset(Class<T> objClass, Map<String,Object> map)
T - objClass - map - public static <T> void reset(Class<T> objClass)
public static <T> void resetWithOther(Class<T> objClass, Map<String,Object> other)
public static <T> void reset(String resultName, Map<String,Object> map)
T - resultName - map - public static <T> MockObject<T> get(Class<T> objClass)
T - objClass - public static <T> MockObject<Map> get(String resultName)
T - resultName - public static Set<Class<?>> scan(ClassLoader classLoader, Function<Class<?>,Map<String,Object>> withOther, boolean reset, String... packages) throws Exception
MockBean注解的类。classLoader - nullable, 类加载器, null则默认为当前类加载器withOther - nullable, 假如扫描的类中存在某些类,你想要为它提供一些额外的参数,此函数用于获取对应class所需要添加的额外参数。可以为nullreset - 加载注解映射的时候是否使用resetpackages - emptyable, 要扫描的包路径列表, 为空则直接返回空setException - 包扫描过程中可能会出现一些例如类找不到等各种异常。需要进行处理。public static Set<Class<?>> scan(Function<Class<?>,Map<String,Object>> withOther, boolean reset, String... packages) throws Exception
Exceptionscan(ClassLoader, Function, boolean, String...)public static Set<Class<?>> scan(boolean reset, String... packages) throws Exception
Exceptionscan(ClassLoader, Function, boolean, String...)public static Set<Class<?>> scan(String... packages) throws Exception
scan(ClassLoader, Function, boolean, String...)的重载方法
reset默认为falseExceptionscan(ClassLoader, Function, boolean, String...)public static <T> T proxy(Class<T> type, MockProxyHandlerFactory factory)
为一个接口提供一个代理对象。此接口中,所有的 抽象方法 都会被扫描,假如他的返回值存在与Mock中,则为其创建代理。此方法默认不会为使用者保存单例,每次代理都会代理一个新的对象,因此如果有需要,请保存一个单例对象而不是频繁代理。
T - 接口类型type - 要代理的接口类型。factory - 接口代理处理器的获取工厂。可自行实现。public static <T,C extends Class<T>> T proxy(C type)
为一个接口提供一个代理对象。此接口中,所有的 抽象方法 都会被扫描,假如他的返回值存在与Mock中,则为其创建代理。此方法默认不会为使用者保存单例,每次代理都会代理一个新的对象,因此如果有需要,请保存一个单例对象而不是频繁代理。使用默认的接口代理处理器工厂MockProxyHandlerFactoryImpl。默认处理工厂中,代理接口时,被代理的方法需要:不是default方法。default方法会根据其自己的逻辑执行。没有参数没有标注@MockProxy(ignore=true) ignore=true的时候代表忽略
type - 要代理的接口类型。MockProxyHandlerFactoryImplpublic static MethodLoader mockMethodLoader()
@Deprecated public static Map<String,Method> _getMockMethod()
getMockMethods()Copyright © 2024. All rights reserved.