From 0287d27d85d8c84c3b41173ff4a489e7526c5ebc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=87=91=E6=88=9F?= Date: Wed, 14 Dec 2022 19:22:37 +0800 Subject: [PATCH] release v0.7.9 --- demo/android-demo/app/build.gradle | 2 +- demo/java-demo/build.gradle | 4 ++-- demo/java-demo/pom.xml | 2 +- demo/kotlin-demo/build.gradle.kts | 4 ++-- demo/kotlin-demo/pom.xml | 2 +- demo/spock-demo/build.gradle | 4 ++-- demo/spock-demo/pom.xml | 2 +- docs/en-us/doc/omni-constructor.md | 4 +++- docs/en-us/doc/release-note.md | 6 ++++++ docs/en-us/doc/setup.md | 6 +++--- docs/zh-cn/doc/omni-constructor.md | 2 ++ docs/zh-cn/doc/release-note.md | 6 ++++++ docs/zh-cn/doc/setup.md | 6 +++--- testable-agent/pom.xml | 2 +- testable-all/pom.xml | 2 +- testable-core/pom.xml | 2 +- testable-maven-plugin/pom.xml | 2 +- testable-parent/pom.xml | 4 ++-- testable-processor/pom.xml | 2 +- 19 files changed, 40 insertions(+), 24 deletions(-) diff --git a/demo/android-demo/app/build.gradle b/demo/android-demo/app/build.gradle index 16432b75..835c188b 100644 --- a/demo/android-demo/app/build.gradle +++ b/demo/android-demo/app/build.gradle @@ -49,7 +49,7 @@ dependencies { testImplementation 'androidx.test:runner:1.4.0-alpha05' testImplementation 'junit:junit:4.+' testImplementation 'org.robolectric:robolectric:4.5.1' - testImplementation 'com.alibaba.testable:testable-all:0.7.8' + testImplementation 'com.alibaba.testable:testable-all:0.7.9' androidTestImplementation 'androidx.test.ext:junit:1.1.1' androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' } \ No newline at end of file diff --git a/demo/java-demo/build.gradle b/demo/java-demo/build.gradle index bed76189..2d6d3c10 100644 --- a/demo/java-demo/build.gradle +++ b/demo/java-demo/build.gradle @@ -13,8 +13,8 @@ repositories { dependencies { testImplementation('org.junit.jupiter:junit-jupiter:5.6.2') - testImplementation('com.alibaba.testable:testable-all:0.7.8') - testAnnotationProcessor('com.alibaba.testable:testable-processor:0.7.8') + testImplementation('com.alibaba.testable:testable-all:0.7.9') + testAnnotationProcessor('com.alibaba.testable:testable-processor:0.7.9') } tasks.withType(JavaCompile) { diff --git a/demo/java-demo/pom.xml b/demo/java-demo/pom.xml index cf923ad0..85e7ded8 100644 --- a/demo/java-demo/pom.xml +++ b/demo/java-demo/pom.xml @@ -12,7 +12,7 @@ 1.8 1.8 5.9.1 - 0.7.8 + 0.7.9 diff --git a/demo/kotlin-demo/build.gradle.kts b/demo/kotlin-demo/build.gradle.kts index 53936788..9c5713ce 100644 --- a/demo/kotlin-demo/build.gradle.kts +++ b/demo/kotlin-demo/build.gradle.kts @@ -17,8 +17,8 @@ dependencies { implementation("org.jetbrains.kotlin:kotlin-reflect") implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") testImplementation("org.junit.jupiter:junit-jupiter:5.6.2") - testImplementation("com.alibaba.testable:testable-all:0.7.8") - testAnnotationProcessor("com.alibaba.testable:testable-processor:0.7.8") + testImplementation("com.alibaba.testable:testable-all:0.7.9") + testAnnotationProcessor("com.alibaba.testable:testable-processor:0.7.9") } tasks.withType { diff --git a/demo/kotlin-demo/pom.xml b/demo/kotlin-demo/pom.xml index 422b7600..97959ce4 100644 --- a/demo/kotlin-demo/pom.xml +++ b/demo/kotlin-demo/pom.xml @@ -14,7 +14,7 @@ 1.8 1.8 5.9.1 - 0.7.8 + 0.7.9 diff --git a/demo/spock-demo/build.gradle b/demo/spock-demo/build.gradle index 14adafdb..95789efa 100644 --- a/demo/spock-demo/build.gradle +++ b/demo/spock-demo/build.gradle @@ -14,8 +14,8 @@ repositories { dependencies { testImplementation 'org.codehaus.groovy:groovy-all:3.0.7' testImplementation 'org.spockframework:spock-core:2.0-M5-groovy-3.0' - testImplementation('com.alibaba.testable:testable-all:0.7.8') - testAnnotationProcessor('com.alibaba.testable:testable-processor:0.7.8') + testImplementation('com.alibaba.testable:testable-all:0.7.9') + testAnnotationProcessor('com.alibaba.testable:testable-processor:0.7.9') } tasks.withType(JavaCompile) { diff --git a/demo/spock-demo/pom.xml b/demo/spock-demo/pom.xml index 48b75b0b..a13ae5e9 100644 --- a/demo/spock-demo/pom.xml +++ b/demo/spock-demo/pom.xml @@ -12,7 +12,7 @@ 1.8 1.8 1.8 - 0.7.8 + 0.7.9 diff --git a/docs/en-us/doc/omni-constructor.md b/docs/en-us/doc/omni-constructor.md index 975a1553..5b04afb3 100644 --- a/docs/en-us/doc/omni-constructor.md +++ b/docs/en-us/doc/omni-constructor.md @@ -35,7 +35,9 @@ Parent parent = OmniConstructor.newInstance(Parent.class); parent.getChild().getGrandChild().getContent(); ``` -> **Note**: Based on the light-weight principle, in the default mode, `OmniConstructor` will only uses the original constructor of the class to create objects. For POJO and most model layer objects, this mode has been able to meet the needs. +> Interface and abstract class can also be instantiated by `OmniConstructor`, you can try it e.g. `OmniConstructor.newInstance(CharSequence.class)` ^_^ + +> **Notice**: Based on the light-weight principle, in the default mode, `OmniConstructor` will only uses the original constructor of the class to create objects. For POJO and most model layer objects, this mode has been able to meet the needs. > But for more complex situations, such as when certain class have constructors throwing exceptions or contain other statements that hinder the normal execution of the construction, the object construction may fail. > In those situations, you can use the [Testable global configuration](en-us/doc/javaagent-args.md) `omni.constructor.enhance.enable = true` to enable bytecode enhancement mode of `OmniConstructor`, in this mode, any Java class can be constructed. diff --git a/docs/en-us/doc/release-note.md b/docs/en-us/doc/release-note.md index d906ae3d..06dca866 100644 --- a/docs/en-us/doc/release-note.md +++ b/docs/en-us/doc/release-note.md @@ -1,5 +1,11 @@ # Release Note +## 0.7.9 +- fix many issues relate to interface instance creation of `OmniConstructor` +- add `@MockContainer` annotation to support multiply parents inheritance between mock classes +- add `targetClassName` parameter to `@MockInvoke` annotation, support mock method of private internal class +- move collection creation methods from `CollectionUtil` class to `CollectionTool` class + ## 0.7.8 - support use `OmniConstructor` class to create instance of interface type or abstract class - provide a `CollectionUtil` class which contains many utility collection creation methods diff --git a/docs/en-us/doc/setup.md b/docs/en-us/doc/setup.md index 8119c7ec..895f17cd 100644 --- a/docs/en-us/doc/setup.md +++ b/docs/en-us/doc/setup.md @@ -16,7 +16,7 @@ It is recommended to add a `property` field that identifies the TestableMock ver ```xml - 0.7.8 + 0.7.9 ``` @@ -63,8 +63,8 @@ Add dependence of `TestableMock` in `build.gradle` file: ```groovy dependencies { - testImplementation('com.alibaba.testable:testable-all:0.7.8') - testAnnotationProcessor('com.alibaba.testable:testable-processor:0.7.8') + testImplementation('com.alibaba.testable:testable-all:0.7.9') + testAnnotationProcessor('com.alibaba.testable:testable-processor:0.7.9') } ``` diff --git a/docs/zh-cn/doc/omni-constructor.md b/docs/zh-cn/doc/omni-constructor.md index caa9aedc..de710441 100644 --- a/docs/zh-cn/doc/omni-constructor.md +++ b/docs/zh-cn/doc/omni-constructor.md @@ -35,6 +35,8 @@ Parent parent = OmniConstructor.newInstance(Parent.class); parent.getChild().getGrandChild().getContent(); ``` +> 接口类型和抽象类型也可以直接通过`OmniConstructor`实例化哦,不信试试看`OmniConstructor.newInstance(CharSequence.class)` ^_^ + > **注意**:基于轻量优先原则,默认模式下,`OmniConstructor`仅利用类型原有的构造方法来创建对象,对于绝大多数POJO和`Model`层对象而言这种模式已经能够满足需要。 > 但对于更复杂的情形,譬如遇到某些类型的构造方法会抛出异常或包含其他妨碍构造正常执行的语句时,对象构造可能会失败。 > 此时可通过[Testable全局配置](zh-cn/doc/javaagent-args.md)`omni.constructor.enhance.enable = true`启用`OmniConstructor`的字节码增强模式,在该模式下,任何Java类型皆可构造。 diff --git a/docs/zh-cn/doc/release-note.md b/docs/zh-cn/doc/release-note.md index fa5aa702..6f682e93 100644 --- a/docs/zh-cn/doc/release-note.md +++ b/docs/zh-cn/doc/release-note.md @@ -1,5 +1,11 @@ # Release Note +## 0.7.9 +- 修复多处`OmniConstructor`创建接口类型对象相关的问题 +- 新增`@MockContainer`注解,支持Mock容器类之间的多重继承 +- `@MockInvoke`注解新增`targetClassName`参数,支持Mock私有内部类的方法 +- 将`CollectionUtil`中的集合构造方法独立为`CollectionTool`工具类并发布 + ## 0.7.8 - 支持使用`OmniConstructor`工具类自动创建接口和抽象类的实例 - 提供`CollectionUtil`工具类,包含在测试中常用的集合创建方法 diff --git a/docs/zh-cn/doc/setup.md b/docs/zh-cn/doc/setup.md index 1cbbb9b2..e2ab7c82 100644 --- a/docs/zh-cn/doc/setup.md +++ b/docs/zh-cn/doc/setup.md @@ -16,7 +16,7 @@ ```xml - 0.7.8 + 0.7.9 ``` @@ -63,8 +63,8 @@ ```groovy dependencies { - testImplementation('com.alibaba.testable:testable-all:0.7.8') - testAnnotationProcessor('com.alibaba.testable:testable-processor:0.7.8') + testImplementation('com.alibaba.testable:testable-all:0.7.9') + testAnnotationProcessor('com.alibaba.testable:testable-processor:0.7.9') } ``` diff --git a/testable-agent/pom.xml b/testable-agent/pom.xml index efebcc00..c2ca071b 100755 --- a/testable-agent/pom.xml +++ b/testable-agent/pom.xml @@ -6,7 +6,7 @@ com.alibaba.testable testable-parent - 0.7.8 + 0.7.9 ../testable-parent testable-agent diff --git a/testable-all/pom.xml b/testable-all/pom.xml index 76224dc7..57982918 100644 --- a/testable-all/pom.xml +++ b/testable-all/pom.xml @@ -6,7 +6,7 @@ com.alibaba.testable testable-parent - 0.7.8 + 0.7.9 ../testable-parent testable-all diff --git a/testable-core/pom.xml b/testable-core/pom.xml index 738601d9..45967eba 100644 --- a/testable-core/pom.xml +++ b/testable-core/pom.xml @@ -6,7 +6,7 @@ com.alibaba.testable testable-parent - 0.7.8 + 0.7.9 ../testable-parent testable-core diff --git a/testable-maven-plugin/pom.xml b/testable-maven-plugin/pom.xml index e5cd37f1..5ea6f5ad 100644 --- a/testable-maven-plugin/pom.xml +++ b/testable-maven-plugin/pom.xml @@ -6,7 +6,7 @@ com.alibaba.testable testable-parent - 0.7.8 + 0.7.9 ../testable-parent testable-maven-plugin diff --git a/testable-parent/pom.xml b/testable-parent/pom.xml index 2ea0f165..a0555494 100644 --- a/testable-parent/pom.xml +++ b/testable-parent/pom.xml @@ -5,7 +5,7 @@ 4.0.0 com.alibaba.testable testable-parent - 0.7.8 + 0.7.9 pom testable-parent Unit test enhancement toolkit @@ -42,7 +42,7 @@ 3.0.1 1.6.13 3.7.0 - 0.7.8 + 0.7.9 diff --git a/testable-processor/pom.xml b/testable-processor/pom.xml index e25c6065..d36e8654 100644 --- a/testable-processor/pom.xml +++ b/testable-processor/pom.xml @@ -6,7 +6,7 @@ com.alibaba.testable testable-parent - 0.7.8 + 0.7.9 ../testable-parent testable-processor