# tiny-mock
**Repository Path**: zhunengfei/tiny-mock
## Basic Information
- **Project Name**: tiny-mock
- **Description**: tiny-mock是一个轻量mock框架,主要为了实现mock与真实代码解耦。
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 14
- **Created**: 2017-11-02
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Tiny-Mock
# 简介
tiny-mock是一个轻量mock框架,主要为了实现mock与真实代码解耦。
# 特性
tiny-mock 分本地mock(local-mock)和服务mock(server-mock)。
如果只为了在调用某一个接口时,不走真实逻辑,而走本地的mock分支的话,使用local-mock就能够满足你的要求。
如果想在调用某一个接口时,不走真实逻辑,而去调用一个第三方的mock服务的话,那么就要使用local-mock配合server-mock一起使用,就能够达到目的。
* local-mock 提供本地mock的轻量实现
* server-mock 提供服务mock的轻量实现
* mock支持注解和xml配置两种方式,可以随意选择
## I. local-mock
提供了三种注解:@MockReturn、@MockBy、@MockByHttp。
其中也对应了三种xml配置MockReturnXmlItem、MockByXmlItem、MockByHttpXmlItem
### 1. @MockReturn(MockReturnXmlItem)
**注解形式:@MockReturn**
使用在真实接口上,调用真实接口时,直接使用用户指定的值返回。
>
/**
* 含有@MockReturn的方法,将直接返回value
*/
@Target({METHOD})
@Retention(RUNTIME)
public @interface MockReturn {
/**
* mock的返回值。复杂对象使用JSON串作为返回值
* @see MockAspect
*/
String value();
}
**特定值:**
>
String THROW = "THROW()"; // 抛出一个异常
String RANDOM = "RANDOM()"; // 返回一个随机对象
String RANDOM_EXCEPTION = "RANDOM_EXCEPTION()"; // 返回随机对象或抛出一个异常
**xml配置形式**
具体参考:[mock-test/src/main/resources/beans/beans-mock.xml](mock-test/src/main/resources/beans/beans-mock.xml)
例:
>
* 形如: * mock.com.kvn.service.MockServiceA#mockMethod_4() * mock.com.kvn.service.MockServiceA#mockMethod_11(java.lang.String,com.kvn.domain.Foo) * 默认值: * 默认使用的mock类路径为[mock类全路径 = "mock." + 真实类的包名 + ".Mock" + 真实类的类名], * 默认使用的mock方法名与参数与原方法保持一致 ** @return */ String delegateMethodFullPath() default MOCKBY_DEFALUT_PATH; String MOCKBY_DEFALUT_PATH = "DEFAULT_PATH"; } **xml配置形式** 具体参考:[mock-test/src/main/resources/beans/beans-mock.xml](mock-test/src/main/resources/beans/beans-mock.xml) 例: >