Skip to content

Commit 0ce7b02

Browse files
author
JsonZou
committed
1.增加bean mocker拦截器支持
2.增加支持配置Modifier:static、public、protected、private 3.排除final修饰的字段 4.对可模拟的class类做一些过滤
1 parent b3b4bfb commit 0ce7b02

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

README.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,10 @@ public void testTypeRefrence() {
272272
MockConfig mockConfig = new MockConfig()
273273
// 全局配置
274274
.globalConfig()
275+
.setEnabledStatic(false);
276+
.setEnabledPrivate(false);
277+
.setEnabledPublic(false);
278+
.setEnabledProtected(false);
275279
.sizeRange(1,1)
276280
.charSeed((char) 97, (char) 98)
277281
.byteRange((byte) 0, Byte.MAX_VALUE)
@@ -435,3 +439,17 @@ MockConfig mockConfig = new MockConfig()
435439

436440
```
437441

442+
### 定义BeanMocker拦截器
443+
##### 通过实现接口BeanMockerInterceptor实现模拟bean时拦截功能,改变模拟行为
444+
#### 拦截器返回值类型说明:
445+
- 返回InterceptType.UNMOCK 不模拟, 排除此字段的模拟
446+
- 返回InterceptType.MOCK 自动模拟
447+
- 其他返回值,作为field的值通过反射注入
448+
449+
```java
450+
MockConfig mockConfig = new MockConfig()
451+
.registerBeanMockerInterceptor(new BeanMockerInterceptor() {...}) // 全局拦截
452+
.registerBeanMockerInterceptor(SimpleBean.class,new BeanMockerInterceptor<SimpleBean>() {...})// 类型拦截
453+
454+
```
455+

src/test/java/com/github/jsonzou/jmockdata/JMockDataTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -297,7 +297,8 @@ public void noneGetterSetterAndPlainAndChainBeanMock() throws IllegalAccessExcep
297297
@Test
298298
public void noneBeanMockerInterceptor() throws IllegalAccessException {
299299
MockConfig mockConfig = new MockConfig();
300-
mockConfig.registerBeanMockerInterceptor(new BeanMockerInterceptor<SimpleBean>() {
300+
// mockConfig.registerBeanMockerInterceptor(new BeanMockerInterceptor() {
301+
mockConfig.registerBeanMockerInterceptor(SimpleBean.class,new BeanMockerInterceptor<SimpleBean>() {
301302
@Override
302303
public Object mock(Class<SimpleBean> clazz, Field field, SimpleBean bean, DataConfig dataConfig) {
303304
// 场景1

0 commit comments

Comments
 (0)