diff --git a/demo/java-demo/pom.xml b/demo/java-demo/pom.xml
index 845e800..fbec31f 100644
--- a/demo/java-demo/pom.xml
+++ b/demo/java-demo/pom.xml
@@ -1,60 +1,41 @@
- 4.0.0
-
- org.springframework.boot
- spring-boot-starter-parent
- 2.3.4.RELEASE
-
-
- com.alibaba.testable
- java-demo
- 1.0.0-SNAPSHOT
- java-demo
- Demo project for Spring Boot
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+ 4.0.0
+ com.alibaba.testable
+ java-demo
+ 1.0.0-SNAPSHOT
+ java-demo
+ Demo project for TestableMock
-
- 1.8
- 0.3.1-SNAPSHOT
-
+
+ 1.8
+ 1.8
+ 0.3.1-SNAPSHOT
+
-
-
- org.springframework.boot
- spring-boot-starter-web
-
+
+
+ com.alibaba.testable
+ testable-processor
+ ${testable.version}
+ provided
+
+
+ org.junit.jupiter
+ junit-jupiter-api
+ 5.6.2
+ test
+
+
-
- com.alibaba.testable
- testable-processor
- ${testable.version}
- provided
-
-
-
- org.springframework.boot
- spring-boot-starter-test
- test
-
-
- org.junit.vintage
- junit-vintage-engine
-
-
- org.ow2.asm
- asm
-
-
-
-
-
-
-
-
- org.springframework.boot
- spring-boot-maven-plugin
-
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 3.0.0-M5
+
@@ -62,44 +43,44 @@
-
- com.alibaba.testable
- testable-maven-plugin
- ${testable.version}
-
-
- prepare
-
- prepare
-
-
-
-
-
- org.jacoco
- jacoco-maven-plugin
- 0.8.6
-
-
- prepare-agent
-
- prepare-agent
-
-
-
- report
- prepare-package
-
- report
-
-
- target/jacoco.exec
- target/jacoco-ut
-
-
-
-
-
-
+
+ com.alibaba.testable
+ testable-maven-plugin
+ ${testable.version}
+
+
+ prepare
+
+ prepare
+
+
+
+
+
+ org.jacoco
+ jacoco-maven-plugin
+ 0.8.6
+
+
+ prepare-agent
+
+ prepare-agent
+
+
+
+ report
+ prepare-package
+
+ report
+
+
+ target/jacoco.exec
+ target/jacoco-ut
+
+
+
+
+
+
diff --git a/demo/java-demo/src/main/java/com/alibaba/testable/demo/DemoApplication.java b/demo/java-demo/src/main/java/com/alibaba/testable/demo/DemoApplication.java
deleted file mode 100644
index 993f22d..0000000
--- a/demo/java-demo/src/main/java/com/alibaba/testable/demo/DemoApplication.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.alibaba.testable.demo;
-
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-
-@SpringBootApplication
-public class DemoApplication {
-
- public static void main(String[] args) {
- SpringApplication.run(DemoApplication.class, args);
- }
-}
diff --git a/demo/java-demo/src/main/java/com/alibaba/testable/demo/service/DemoInheritService.java b/demo/java-demo/src/main/java/com/alibaba/testable/demo/DemoInherit.java
similarity index 90%
rename from demo/java-demo/src/main/java/com/alibaba/testable/demo/service/DemoInheritService.java
rename to demo/java-demo/src/main/java/com/alibaba/testable/demo/DemoInherit.java
index fdcb246..2ee375f 100644
--- a/demo/java-demo/src/main/java/com/alibaba/testable/demo/service/DemoInheritService.java
+++ b/demo/java-demo/src/main/java/com/alibaba/testable/demo/DemoInherit.java
@@ -1,12 +1,13 @@
-package com.alibaba.testable.demo.service;
+package com.alibaba.testable.demo;
import com.alibaba.testable.demo.model.BlackBox;
import com.alibaba.testable.demo.model.Box;
import com.alibaba.testable.demo.model.Color;
-import org.springframework.stereotype.Service;
-@Service
-public class DemoInheritService {
+/**
+ * @author flin
+ */
+public class DemoInherit {
/**
* call method overridden by sub class via parent class variable
diff --git a/demo/java-demo/src/main/java/com/alibaba/testable/demo/service/DemoMatcherService.java b/demo/java-demo/src/main/java/com/alibaba/testable/demo/DemoMatcher.java
similarity index 93%
rename from demo/java-demo/src/main/java/com/alibaba/testable/demo/service/DemoMatcherService.java
rename to demo/java-demo/src/main/java/com/alibaba/testable/demo/DemoMatcher.java
index b36ae4c..2d6419f 100644
--- a/demo/java-demo/src/main/java/com/alibaba/testable/demo/service/DemoMatcherService.java
+++ b/demo/java-demo/src/main/java/com/alibaba/testable/demo/DemoMatcher.java
@@ -1,8 +1,7 @@
-package com.alibaba.testable.demo.service;
+package com.alibaba.testable.demo;
import com.alibaba.testable.demo.model.BlackBox;
-import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
@@ -12,8 +11,7 @@ import java.util.List;
/**
* @author flin
*/
-@Service
-public class DemoMatcherService {
+public class DemoMatcher {
/**
* Method to be mocked
diff --git a/demo/java-demo/src/main/java/com/alibaba/testable/demo/service/DemoMockService.java b/demo/java-demo/src/main/java/com/alibaba/testable/demo/DemoMock.java
similarity index 87%
rename from demo/java-demo/src/main/java/com/alibaba/testable/demo/service/DemoMockService.java
rename to demo/java-demo/src/main/java/com/alibaba/testable/demo/DemoMock.java
index d7468ee..edbb746 100644
--- a/demo/java-demo/src/main/java/com/alibaba/testable/demo/service/DemoMockService.java
+++ b/demo/java-demo/src/main/java/com/alibaba/testable/demo/DemoMock.java
@@ -1,14 +1,11 @@
-package com.alibaba.testable.demo.service;
+package com.alibaba.testable.demo;
import com.alibaba.testable.demo.model.BlackBox;
-import com.alibaba.testable.demo.model.Box;
-import org.springframework.stereotype.Service;
import sun.net.www.http.HttpClient;
import java.net.URL;
-@Service
-public class DemoMockService {
+public class DemoMock {
/**
* method with new operation
diff --git a/demo/java-demo/src/main/java/com/alibaba/testable/demo/service/DemoPrivateAccessService.java b/demo/java-demo/src/main/java/com/alibaba/testable/demo/DemoPrivateAccess.java
similarity index 71%
rename from demo/java-demo/src/main/java/com/alibaba/testable/demo/service/DemoPrivateAccessService.java
rename to demo/java-demo/src/main/java/com/alibaba/testable/demo/DemoPrivateAccess.java
index 336db49..c5f20a1 100644
--- a/demo/java-demo/src/main/java/com/alibaba/testable/demo/service/DemoPrivateAccessService.java
+++ b/demo/java-demo/src/main/java/com/alibaba/testable/demo/DemoPrivateAccess.java
@@ -1,9 +1,9 @@
-package com.alibaba.testable.demo.service;
+package com.alibaba.testable.demo;
-import org.springframework.stereotype.Service;
-
-@Service
-public class DemoPrivateAccessService {
+/**
+ * @author flin
+ */
+public class DemoPrivateAccess {
private int count;
diff --git a/demo/java-demo/src/main/resources/application.properties b/demo/java-demo/src/main/resources/application.properties
deleted file mode 100644
index 8b13789..0000000
--- a/demo/java-demo/src/main/resources/application.properties
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/demo/java-demo/src/test/java/com/alibaba/testable/demo/DemoApplicationTests.java b/demo/java-demo/src/test/java/com/alibaba/testable/demo/DemoApplicationTests.java
deleted file mode 100644
index 763c918..0000000
--- a/demo/java-demo/src/test/java/com/alibaba/testable/demo/DemoApplicationTests.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.alibaba.testable.demo;
-
-import org.junit.jupiter.api.Test;
-import org.springframework.boot.test.context.SpringBootTest;
-
-@SpringBootTest
-class DemoApplicationTests {
-
- @Test
- void contextLoads() {
- }
-
-}
diff --git a/demo/java-demo/src/test/java/com/alibaba/testable/demo/service/DemoInheritServiceTest.java b/demo/java-demo/src/test/java/com/alibaba/testable/demo/DemoInheritTest.java
similarity index 83%
rename from demo/java-demo/src/test/java/com/alibaba/testable/demo/service/DemoInheritServiceTest.java
rename to demo/java-demo/src/test/java/com/alibaba/testable/demo/DemoInheritTest.java
index 6f56b56..873e5b8 100644
--- a/demo/java-demo/src/test/java/com/alibaba/testable/demo/service/DemoInheritServiceTest.java
+++ b/demo/java-demo/src/test/java/com/alibaba/testable/demo/DemoInheritTest.java
@@ -1,4 +1,4 @@
-package com.alibaba.testable.demo.service;
+package com.alibaba.testable.demo;
import com.alibaba.testable.core.annotation.TestableMock;
import com.alibaba.testable.demo.model.BlackBox;
@@ -9,7 +9,7 @@ import org.junit.jupiter.api.Test;
import static com.alibaba.testable.core.matcher.InvokeVerifier.verify;
import static org.junit.jupiter.api.Assertions.*;
-class DemoInheritServiceTest {
+class DemoInheritTest {
@TestableMock(targetMethod = "put")
private void put_into_box(Box self, String something) {
@@ -41,46 +41,46 @@ class DemoInheritServiceTest {
return "color_from_blackbox";
}
- private DemoInheritService inheritService = new DemoInheritService();
+ private DemoInherit demoInherit = new DemoInherit();
@Test
void should_able_to_mock_call_sub_object_method_by_parent_object() throws Exception {
- BlackBox box = (BlackBox)inheritService.putIntoBox();
+ BlackBox box = (BlackBox)demoInherit.putIntoBox();
verify("put_into_box").withTimes(1);
assertEquals("put_data_into_box", box.get());
}
@Test
void should_able_to_mock_call_sub_object_method_by_sub_object() throws Exception {
- BlackBox box = inheritService.putIntoBlackBox();
+ BlackBox box = demoInherit.putIntoBlackBox();
verify("put_into_blackbox").withTimes(1);
assertEquals("put_data_into_blackbox", box.get());
}
@Test
void should_able_to_mock_call_parent_object_method_by_parent_object() throws Exception {
- String content = inheritService.getFromBox();
+ String content = demoInherit.getFromBox();
verify("get_from_box").withTimes(1);
assertEquals("get_from_box", content);
}
@Test
void should_able_to_mock_call_parent_object_method_by_sub_object() throws Exception {
- String content = inheritService.getFromBlackBox();
+ String content = demoInherit.getFromBlackBox();
verify("get_from_blackbox").withTimes(1);
assertEquals("get_from_blackbox", content);
}
@Test
void should_able_to_mock_call_interface_method_by_interface_object() throws Exception {
- String color = inheritService.getColorViaColor();
+ String color = demoInherit.getColorViaColor();
verify("get_color_from_color").withTimes(1);
assertEquals("color_from_color", color);
}
@Test
void should_able_to_mock_call_interface_method_by_sub_class_object() throws Exception {
- String color = inheritService.getColorViaBox();
+ String color = demoInherit.getColorViaBox();
verify("get_color_from_blackbox").withTimes(1);
assertEquals("color_from_blackbox", color);
}
diff --git a/demo/java-demo/src/test/java/com/alibaba/testable/demo/service/DemoMatcherServiceTest.java b/demo/java-demo/src/test/java/com/alibaba/testable/demo/DemoMatcherTest.java
similarity index 77%
rename from demo/java-demo/src/test/java/com/alibaba/testable/demo/service/DemoMatcherServiceTest.java
rename to demo/java-demo/src/test/java/com/alibaba/testable/demo/DemoMatcherTest.java
index 021732e..b115e83 100644
--- a/demo/java-demo/src/test/java/com/alibaba/testable/demo/service/DemoMatcherServiceTest.java
+++ b/demo/java-demo/src/test/java/com/alibaba/testable/demo/DemoMatcherTest.java
@@ -1,4 +1,4 @@
-package com.alibaba.testable.demo.service;
+package com.alibaba.testable.demo;
import com.alibaba.testable.core.annotation.TestableMock;
import com.alibaba.testable.core.error.VerifyFailedError;
@@ -9,30 +9,30 @@ import static com.alibaba.testable.core.matcher.InvokeMatcher.*;
import static com.alibaba.testable.core.matcher.InvokeVerifier.verify;
import static org.junit.jupiter.api.Assertions.fail;
-class DemoMatcherServiceTest {
+class DemoMatcherTest {
- private DemoMatcherService demo = new DemoMatcherService();
+ private DemoMatcher demoMatcher = new DemoMatcher();
@TestableMock(targetMethod = "methodToBeMocked")
- private void methodWithoutArgument(DemoMatcherService self) {}
+ private void methodWithoutArgument(DemoMatcher self) {}
@TestableMock(targetMethod = "methodToBeMocked")
- private void methodWithArguments(DemoMatcherService self, Object a1, Object a2) {}
+ private void methodWithArguments(DemoMatcher self, Object a1, Object a2) {}
@TestableMock(targetMethod = "methodToBeMocked")
- private void methodWithArrayArgument(DemoMatcherService self, Object[] a) {}
+ private void methodWithArrayArgument(DemoMatcher self, Object[] a) {}
@Test
void should_match_no_argument() {
- demo.callMethodWithoutArgument();
+ demoMatcher.callMethodWithoutArgument();
verify("methodWithoutArgument").withTimes(1);
- demo.callMethodWithoutArgument();
+ demoMatcher.callMethodWithoutArgument();
verify("methodWithoutArgument").withTimes(2);
}
@Test
void should_match_number_arguments() {
- demo.callMethodWithNumberArguments();
+ demoMatcher.callMethodWithNumberArguments();
verify("methodWithArguments").without(anyString(), 2);
verify("methodWithArguments").withInOrder(anyInt(), 2);
verify("methodWithArguments").withInOrder(anyLong(), anyNumber());
@@ -45,7 +45,7 @@ class DemoMatcherServiceTest {
@Test
void should_match_string_arguments() {
- demo.callMethodWithStringArgument();
+ demoMatcher.callMethodWithStringArgument();
verify("methodWithArguments").with(startsWith("he"), endsWith("ld"));
verify("methodWithArguments").with(contains("stab"), matches("m.[cd]k"));
verify("methodWithArrayArgument").with(anyArrayOf(String.class));
@@ -53,7 +53,7 @@ class DemoMatcherServiceTest {
@Test
void should_match_object_arguments() {
- demo.callMethodWithObjectArgument();
+ demoMatcher.callMethodWithObjectArgument();
verify("methodWithArguments").withInOrder(any(BlackBox.class), any(BlackBox.class));
verify("methodWithArguments").withInOrder(nullable(BlackBox.class), nullable(BlackBox.class));
verify("methodWithArguments").withInOrder(isNull(), notNull());
@@ -61,10 +61,10 @@ class DemoMatcherServiceTest {
@Test
void should_match_with_times() {
- demo.callMethodWithNumberArguments();
+ demoMatcher.callMethodWithNumberArguments();
verify("methodWithArguments").with(anyNumber(), any()).times(3);
- demo.callMethodWithNumberArguments();
+ demoMatcher.callMethodWithNumberArguments();
boolean gotError = false;
try {
verify("methodWithArguments").with(anyNumber(), any()).times(4);
diff --git a/demo/java-demo/src/test/java/com/alibaba/testable/demo/service/DemoMockServiceTest.java b/demo/java-demo/src/test/java/com/alibaba/testable/demo/DemoMockTest.java
similarity index 74%
rename from demo/java-demo/src/test/java/com/alibaba/testable/demo/service/DemoMockServiceTest.java
rename to demo/java-demo/src/test/java/com/alibaba/testable/demo/DemoMockTest.java
index 7590ebd..9afe377 100644
--- a/demo/java-demo/src/test/java/com/alibaba/testable/demo/service/DemoMockServiceTest.java
+++ b/demo/java-demo/src/test/java/com/alibaba/testable/demo/DemoMockTest.java
@@ -1,4 +1,4 @@
-package com.alibaba.testable.demo.service;
+package com.alibaba.testable.demo;
import com.alibaba.testable.core.annotation.TestableMock;
import com.alibaba.testable.demo.model.BlackBox;
@@ -10,7 +10,7 @@ import static com.alibaba.testable.core.matcher.InvokeVerifier.verify;
import static com.alibaba.testable.core.tool.TestableTool.*;
import static org.junit.jupiter.api.Assertions.assertEquals;
-class DemoMockServiceTest {
+class DemoMockTest {
@TestableMock(targetMethod = CONSTRUCTOR)
private BlackBox createBlackBox(String text) {
@@ -18,7 +18,7 @@ class DemoMockServiceTest {
}
@TestableMock
- private String innerFunc(DemoMockService self, String text) {
+ private String innerFunc(DemoMock self, String text) {
return "mock_" + text;
}
@@ -43,7 +43,7 @@ class DemoMockServiceTest {
}
@TestableMock
- private String callFromDifferentMethod(DemoMockService self) {
+ private String callFromDifferentMethod(DemoMock self) {
if (TEST_CASE.equals("should_able_to_get_test_case_name")) {
return "mock_special";
}
@@ -53,23 +53,23 @@ class DemoMockServiceTest {
}
}
- private DemoMockService demoService = new DemoMockService();
+ private DemoMock demoMock = new DemoMock();
@Test
void should_able_to_mock_new_object() throws Exception {
- assertEquals("mock_something", demoService.newFunc());
+ assertEquals("mock_something", demoMock.newFunc());
verify("createBlackBox").with("something");
}
@Test
void should_able_to_mock_member_method() throws Exception {
- assertEquals("{ \"res\": \"mock_hello\"}", demoService.outerFunc("hello"));
+ assertEquals("{ \"res\": \"mock_hello\"}", demoMock.outerFunc("hello"));
verify("innerFunc").with("hello");
}
@Test
void should_able_to_mock_common_method() throws Exception {
- assertEquals("trim_string__sub_string__false", demoService.commonFunc());
+ assertEquals("trim_string__sub_string__false", demoMock.commonFunc());
verify("trim").withTimes(1);
verify("sub").withTimes(1);
verify("startsWith").withTimes(1);
@@ -77,26 +77,26 @@ class DemoMockServiceTest {
@Test
void should_able_to_mock_static_method() throws Exception {
- assertEquals("not_secret_box", demoService.getBox().get());
+ assertEquals("not_secret_box", demoMock.getBox().get());
verify("secretBox").withTimes(1);
}
@Test
void should_able_to_get_source_method_name() throws Exception {
// synchronous
- assertEquals("mock_one_mock_others", demoService.callerOne() + "_" + demoService.callerTwo());
+ assertEquals("mock_one_mock_others", demoMock.callerOne() + "_" + demoMock.callerTwo());
// asynchronous
assertEquals("mock_one_mock_others",
- Executors.newSingleThreadExecutor().submit(() -> demoService.callerOne() + "_" + demoService.callerTwo()).get());
+ Executors.newSingleThreadExecutor().submit(() -> demoMock.callerOne() + "_" + demoMock.callerTwo()).get());
verify("callFromDifferentMethod").withTimes(4);
}
@Test
void should_able_to_get_test_case_name() throws Exception {
// synchronous
- assertEquals("mock_special", demoService.callerOne());
+ assertEquals("mock_special", demoMock.callerOne());
// asynchronous
- assertEquals("mock_special", Executors.newSingleThreadExecutor().submit(() -> demoService.callerOne()).get());
+ assertEquals("mock_special", Executors.newSingleThreadExecutor().submit(() -> demoMock.callerOne()).get());
verify("callFromDifferentMethod").withTimes(2);
}
diff --git a/demo/java-demo/src/test/java/com/alibaba/testable/demo/DemoPrivateAccessTest.java b/demo/java-demo/src/test/java/com/alibaba/testable/demo/DemoPrivateAccessTest.java
new file mode 100644
index 0000000..7a616be
--- /dev/null
+++ b/demo/java-demo/src/test/java/com/alibaba/testable/demo/DemoPrivateAccessTest.java
@@ -0,0 +1,37 @@
+package com.alibaba.testable.demo;
+
+import com.alibaba.testable.core.accessor.PrivateAccessor;
+import com.alibaba.testable.processor.annotation.EnablePrivateAccess;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+@EnablePrivateAccess
+class DemoPrivateAccessTest {
+
+ private DemoPrivateAccess demoPrivateAccess = new DemoPrivateAccess();
+
+ @Test
+ void should_able_to_access_private_method() throws Exception {
+ assertEquals("hello - 1", demoPrivateAccess.privateFunc("hello", 1));
+ assertEquals("hello - 1", PrivateAccessor.invoke(demoPrivateAccess, "privateFunc", "hello", 1));
+ }
+
+ @Test
+ void should_able_to_access_private_field() throws Exception {
+ demoPrivateAccess.count = 2;
+ assertEquals("4", demoPrivateAccess.privateFieldAccessFunc());
+ assertEquals(new Integer(4), demoPrivateAccess.count);
+
+ PrivateAccessor.set(demoPrivateAccess, "count", 3);
+ assertEquals("5", demoPrivateAccess.privateFieldAccessFunc());
+ assertEquals(new Integer(5), PrivateAccessor.get(demoPrivateAccess, "count"));
+ }
+
+ @Test
+ void should_able_to_update_final_field() throws Exception {
+ demoPrivateAccess.pi = 4.13;
+ assertEquals(4.13, demoPrivateAccess.pi);
+ }
+
+}
diff --git a/demo/java-demo/src/test/java/com/alibaba/testable/demo/service/DemoPrivateAccessServiceTest.java b/demo/java-demo/src/test/java/com/alibaba/testable/demo/service/DemoPrivateAccessServiceTest.java
deleted file mode 100644
index ae75d52..0000000
--- a/demo/java-demo/src/test/java/com/alibaba/testable/demo/service/DemoPrivateAccessServiceTest.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package com.alibaba.testable.demo.service;
-
-import com.alibaba.testable.core.accessor.PrivateAccessor;
-import com.alibaba.testable.processor.annotation.EnablePrivateAccess;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-@EnablePrivateAccess
-class DemoPrivateAccessServiceTest {
-
- private DemoPrivateAccessService demoService = new DemoPrivateAccessService();
-
- @Test
- void should_able_to_access_private_method() throws Exception {
- assertEquals("hello - 1", demoService.privateFunc("hello", 1));
- assertEquals("hello - 1", PrivateAccessor.invoke(demoService, "privateFunc", "hello", 1));
- }
-
- @Test
- void should_able_to_access_private_field() throws Exception {
- demoService.count = 2;
- assertEquals("4", demoService.privateFieldAccessFunc());
- assertEquals(new Integer(4), demoService.count);
-
- PrivateAccessor.set(demoService, "count", 3);
- assertEquals("5", demoService.privateFieldAccessFunc());
- assertEquals(new Integer(5), PrivateAccessor.get(demoService, "count"));
- }
-
- @Test
- void should_able_to_update_final_field() throws Exception {
- demoService.pi = 4.13;
- assertEquals(4.13, demoService.pi);
- }
-
-}
diff --git a/demo/kotlin-demo/pom.xml b/demo/kotlin-demo/pom.xml
index 667fab7..e8ff31d 100644
--- a/demo/kotlin-demo/pom.xml
+++ b/demo/kotlin-demo/pom.xml
@@ -2,40 +2,30 @@
4.0.0
-
- org.springframework.boot
- spring-boot-starter-parent
- 2.3.4.RELEASE
-
-
com.alibaba.testable
kotlin-demo
- 0.0.1-SNAPSHOT
+ 1.0.0-SNAPSHOT
kotlin-demo
- Demo project for Spring Boot
+ Demo project for TestableMock
1.8
1.3.72
+ 1.8
+ 1.8
0.3.1-SNAPSHOT
-
- org.springframework.boot
- spring-boot-starter
-
org.jetbrains.kotlin
kotlin-reflect
+ ${kotlin.version}
org.jetbrains.kotlin
kotlin-stdlib-jdk8
-
-
- org.springframework.boot
- spring-boot-starter-web
+ ${kotlin.version}
@@ -44,27 +34,22 @@
${testable.version}
provided
-
- org.springframework.boot
- spring-boot-starter-test
+ org.junit.jupiter
+ junit-jupiter-api
+ 5.6.2
test
-
-
- org.junit.vintage
- junit-vintage-engine
-
-
- ${project.basedir}/src/main/kotlin
+ src/main/kotlin
${project.basedir}/src/test/kotlin
- org.springframework.boot
- spring-boot-maven-plugin
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 3.0.0-M5
@@ -86,25 +71,6 @@
-
- org.jetbrains.kotlin
- kotlin-maven-plugin
-
-
- -Xjsr305=strict
-
-
- spring
-
-
-
-
- org.jetbrains.kotlin
- kotlin-maven-allopen
- ${kotlin.version}
-
-
-
org.jacoco
jacoco-maven-plugin
@@ -129,6 +95,27 @@
+
+ org.jetbrains.kotlin
+ kotlin-maven-plugin
+ ${kotlin.version}
+
+
+ compile
+ compile
+
+ compile
+
+
+
+ test-compile
+ test-compile
+
+ test-compile
+
+
+
+
diff --git a/demo/kotlin-demo/src/main/kotlin/com/alibaba/testable/demo/DemoApplication.kt b/demo/kotlin-demo/src/main/kotlin/com/alibaba/testable/demo/DemoApplication.kt
deleted file mode 100644
index e2a3ca6..0000000
--- a/demo/kotlin-demo/src/main/kotlin/com/alibaba/testable/demo/DemoApplication.kt
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.alibaba.testable.demo
-
-import org.springframework.boot.autoconfigure.SpringBootApplication
-import org.springframework.boot.runApplication
-
-@SpringBootApplication
-class DemoApplication
-
-fun main(args: Array) {
- runApplication(*args)
-}
diff --git a/demo/kotlin-demo/src/main/kotlin/com/alibaba/testable/demo/service/DemoInheritService.kt b/demo/kotlin-demo/src/main/kotlin/com/alibaba/testable/demo/DemoInherit.kt
similarity index 91%
rename from demo/kotlin-demo/src/main/kotlin/com/alibaba/testable/demo/service/DemoInheritService.kt
rename to demo/kotlin-demo/src/main/kotlin/com/alibaba/testable/demo/DemoInherit.kt
index 64e6ae4..d813582 100644
--- a/demo/kotlin-demo/src/main/kotlin/com/alibaba/testable/demo/service/DemoInheritService.kt
+++ b/demo/kotlin-demo/src/main/kotlin/com/alibaba/testable/demo/DemoInherit.kt
@@ -1,12 +1,10 @@
-package com.alibaba.testable.demo.service
+package com.alibaba.testable.demo
import com.alibaba.testable.demo.model.BlackBox
import com.alibaba.testable.demo.model.Box
import com.alibaba.testable.demo.model.Color
-import org.springframework.stereotype.Service
-@Service
-class DemoInheritService {
+class DemoInherit {
/**
* call method overridden by sub class via parent class variable
diff --git a/demo/kotlin-demo/src/main/kotlin/com/alibaba/testable/demo/service/DemoMatcherService.kt b/demo/kotlin-demo/src/main/kotlin/com/alibaba/testable/demo/DemoMatcher.kt
similarity index 92%
rename from demo/kotlin-demo/src/main/kotlin/com/alibaba/testable/demo/service/DemoMatcherService.kt
rename to demo/kotlin-demo/src/main/kotlin/com/alibaba/testable/demo/DemoMatcher.kt
index 8afdf2d..58efdbd 100644
--- a/demo/kotlin-demo/src/main/kotlin/com/alibaba/testable/demo/service/DemoMatcherService.kt
+++ b/demo/kotlin-demo/src/main/kotlin/com/alibaba/testable/demo/DemoMatcher.kt
@@ -1,14 +1,12 @@
-package com.alibaba.testable.demo.service
+package com.alibaba.testable.demo
import com.alibaba.testable.demo.model.BlackBox
-import org.springframework.stereotype.Service
import java.util.*
/**
* @author flin
*/
-@Service
-class DemoMatcherService {
+class DemoMatcher {
/**
* Method to be mocked
*/
diff --git a/demo/kotlin-demo/src/main/kotlin/com/alibaba/testable/demo/service/DemoMockService.kt b/demo/kotlin-demo/src/main/kotlin/com/alibaba/testable/demo/DemoMock.kt
similarity index 87%
rename from demo/kotlin-demo/src/main/kotlin/com/alibaba/testable/demo/service/DemoMockService.kt
rename to demo/kotlin-demo/src/main/kotlin/com/alibaba/testable/demo/DemoMock.kt
index a04ade1..8a8397d 100644
--- a/demo/kotlin-demo/src/main/kotlin/com/alibaba/testable/demo/service/DemoMockService.kt
+++ b/demo/kotlin-demo/src/main/kotlin/com/alibaba/testable/demo/DemoMock.kt
@@ -1,15 +1,11 @@
-package com.alibaba.testable.demo.service
+package com.alibaba.testable.demo
import com.alibaba.testable.demo.model.BlackBox
-import com.alibaba.testable.demo.model.Box
import com.alibaba.testable.demo.model.ColorBox
-import org.springframework.stereotype.Service
import sun.net.www.http.HttpClient
import java.net.URL
-
-@Service
-class DemoMockService {
+class DemoMock {
/**
* method with new operation
diff --git a/demo/kotlin-demo/src/main/kotlin/com/alibaba/testable/demo/service/DemoPrivateAccessService.kt b/demo/kotlin-demo/src/main/kotlin/com/alibaba/testable/demo/DemoPrivateAccess.kt
similarity index 72%
rename from demo/kotlin-demo/src/main/kotlin/com/alibaba/testable/demo/service/DemoPrivateAccessService.kt
rename to demo/kotlin-demo/src/main/kotlin/com/alibaba/testable/demo/DemoPrivateAccess.kt
index efca00c..fb1e574 100644
--- a/demo/kotlin-demo/src/main/kotlin/com/alibaba/testable/demo/service/DemoPrivateAccessService.kt
+++ b/demo/kotlin-demo/src/main/kotlin/com/alibaba/testable/demo/DemoPrivateAccess.kt
@@ -1,10 +1,6 @@
-package com.alibaba.testable.demo.service
+package com.alibaba.testable.demo
-import org.springframework.stereotype.Service
-
-
-@Service
-class DemoPrivateAccessService {
+class DemoPrivateAccess {
private var count = 0
diff --git a/demo/kotlin-demo/src/main/resources/application.properties b/demo/kotlin-demo/src/main/resources/application.properties
deleted file mode 100644
index 8b13789..0000000
--- a/demo/kotlin-demo/src/main/resources/application.properties
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/demo/kotlin-demo/src/test/kotlin/com/alibaba/testable/demo/DemoApplicationTests.kt b/demo/kotlin-demo/src/test/kotlin/com/alibaba/testable/demo/DemoApplicationTests.kt
deleted file mode 100644
index b64004c..0000000
--- a/demo/kotlin-demo/src/test/kotlin/com/alibaba/testable/demo/DemoApplicationTests.kt
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.alibaba.testable.demo
-
-import org.junit.jupiter.api.Test
-import org.springframework.boot.test.context.SpringBootTest
-
-@SpringBootTest
-class DemoApplicationTests {
-
- @Test
- fun contextLoads() {
- }
-
-}
diff --git a/demo/kotlin-demo/src/test/kotlin/com/alibaba/testable/demo/service/DemoInheritServiceTest.kt b/demo/kotlin-demo/src/test/kotlin/com/alibaba/testable/demo/DemoInheritTest.kt
similarity index 85%
rename from demo/kotlin-demo/src/test/kotlin/com/alibaba/testable/demo/service/DemoInheritServiceTest.kt
rename to demo/kotlin-demo/src/test/kotlin/com/alibaba/testable/demo/DemoInheritTest.kt
index 67e1d24..54bc7d2 100644
--- a/demo/kotlin-demo/src/test/kotlin/com/alibaba/testable/demo/service/DemoInheritServiceTest.kt
+++ b/demo/kotlin-demo/src/test/kotlin/com/alibaba/testable/demo/DemoInheritTest.kt
@@ -1,4 +1,4 @@
-package com.alibaba.testable.demo.service
+package com.alibaba.testable.demo
import com.alibaba.testable.core.annotation.TestableMock
import com.alibaba.testable.core.matcher.InvokeVerifier
@@ -8,7 +8,7 @@ import com.alibaba.testable.demo.model.Color
import org.junit.jupiter.api.Assertions
import org.junit.jupiter.api.Test
-internal class DemoInheritServiceTest {
+internal class DemoInheritTest {
@TestableMock(targetMethod = "put")
private fun put_into_box(self: Box, something: String) {
@@ -40,46 +40,46 @@ internal class DemoInheritServiceTest {
return "color_from_blackbox"
}
- private val inheritService = DemoInheritService()
+ private val demoInherit = DemoInherit()
@Test
fun should_able_to_mock_call_sub_object_method_by_parent_object() {
- val box = inheritService.putIntoBox() as BlackBox
+ val box = demoInherit.putIntoBox() as BlackBox
InvokeVerifier.verify("put_into_box").withTimes(1)
Assertions.assertEquals("put_data_into_box", box.get())
}
@Test
fun should_able_to_mock_call_sub_object_method_by_sub_object() {
- val box = inheritService.putIntoBlackBox()
+ val box = demoInherit.putIntoBlackBox()
InvokeVerifier.verify("put_into_blackbox").withTimes(1)
Assertions.assertEquals("put_data_into_blackbox", box.get())
}
@Test
fun should_able_to_mock_call_parent_object_method_by_parent_object() {
- val content = inheritService.fromBox
+ val content = demoInherit.fromBox
InvokeVerifier.verify("get_from_box").withTimes(1)
Assertions.assertEquals("get_from_box", content)
}
@Test
fun should_able_to_mock_call_parent_object_method_by_sub_object() {
- val content = inheritService.fromBlackBox
+ val content = demoInherit.fromBlackBox
InvokeVerifier.verify("get_from_blackbox").withTimes(1)
Assertions.assertEquals("get_from_blackbox", content)
}
@Test
fun should_able_to_mock_call_interface_method_by_interface_object() {
- val color = inheritService.colorViaColor
+ val color = demoInherit.colorViaColor
InvokeVerifier.verify("get_color_from_color").withTimes(1)
Assertions.assertEquals("color_from_color", color)
}
@Test
fun should_able_to_mock_call_interface_method_by_sub_class_object() {
- val color = inheritService.colorViaBox
+ val color = demoInherit.colorViaBox
InvokeVerifier.verify("get_color_from_blackbox").withTimes(1)
Assertions.assertEquals("color_from_blackbox", color)
}
diff --git a/demo/kotlin-demo/src/test/kotlin/com/alibaba/testable/demo/service/DemoMatcherServiceTest.kt b/demo/kotlin-demo/src/test/kotlin/com/alibaba/testable/demo/DemoMatcherTest.kt
similarity index 82%
rename from demo/kotlin-demo/src/test/kotlin/com/alibaba/testable/demo/service/DemoMatcherServiceTest.kt
rename to demo/kotlin-demo/src/test/kotlin/com/alibaba/testable/demo/DemoMatcherTest.kt
index fae6c1b..91b21af 100644
--- a/demo/kotlin-demo/src/test/kotlin/com/alibaba/testable/demo/service/DemoMatcherServiceTest.kt
+++ b/demo/kotlin-demo/src/test/kotlin/com/alibaba/testable/demo/DemoMatcherTest.kt
@@ -1,4 +1,4 @@
-package com.alibaba.testable.demo.service
+package com.alibaba.testable.demo
import com.alibaba.testable.core.annotation.TestableMock
import com.alibaba.testable.core.error.VerifyFailedError
@@ -9,33 +9,33 @@ import org.junit.jupiter.api.Assertions
import org.junit.jupiter.api.Test
-internal class DemoMatcherServiceTest {
+internal class DemoMatcherTest {
@TestableMock(targetMethod = "methodToBeMocked")
- private fun methodWithoutArgument(self: DemoMatcherService) {
+ private fun methodWithoutArgument(self: DemoMatcher) {
}
@TestableMock(targetMethod = "methodToBeMocked")
- private fun methodWithArguments(self: DemoMatcherService, a1: Any, a2: Any) {
+ private fun methodWithArguments(self: DemoMatcher, a1: Any, a2: Any) {
}
@TestableMock(targetMethod = "methodToBeMocked")
- private fun methodWithArrayArgument(self: DemoMatcherService, a: Array) {
+ private fun methodWithArrayArgument(self: DemoMatcher, a: Array) {
}
- private val demo = DemoMatcherService()
+ private val demoMatcher = DemoMatcher()
@Test
fun should_match_no_argument() {
- demo.callMethodWithoutArgument()
+ demoMatcher.callMethodWithoutArgument()
InvokeVerifier.verify("methodWithoutArgument").withTimes(1)
- demo.callMethodWithoutArgument()
+ demoMatcher.callMethodWithoutArgument()
InvokeVerifier.verify("methodWithoutArgument").withTimes(2)
}
@Test
fun should_match_number_arguments() {
- demo.callMethodWithNumberArguments()
+ demoMatcher.callMethodWithNumberArguments()
InvokeVerifier.verify("methodWithArguments").without(InvokeMatcher.anyString(), 2)
InvokeVerifier.verify("methodWithArguments").withInOrder(InvokeMatcher.anyInt(), 2)
InvokeVerifier.verify("methodWithArguments").withInOrder(InvokeMatcher.anyLong(), InvokeMatcher.anyNumber())
@@ -49,7 +49,7 @@ internal class DemoMatcherServiceTest {
@Test
fun should_match_string_arguments() {
- demo.callMethodWithStringArgument()
+ demoMatcher.callMethodWithStringArgument()
InvokeVerifier.verify("methodWithArguments").with(InvokeMatcher.startsWith("he"), InvokeMatcher.endsWith("ld"))
InvokeVerifier.verify("methodWithArguments").with(InvokeMatcher.contains("stab"), InvokeMatcher.matches("m.[cd]k"))
InvokeVerifier.verify("methodWithArrayArgument").with(InvokeMatcher.anyArrayOf(String::class.java))
@@ -57,7 +57,7 @@ internal class DemoMatcherServiceTest {
@Test
fun should_match_object_arguments() {
- demo.callMethodWithObjectArgument()
+ demoMatcher.callMethodWithObjectArgument()
InvokeVerifier.verify("methodWithArguments").withInOrder(InvokeMatcher.any(BlackBox::class.java), InvokeMatcher.any(BlackBox::class.java))
InvokeVerifier.verify("methodWithArguments").withInOrder(InvokeMatcher.nullable(BlackBox::class.java), InvokeMatcher.nullable(BlackBox::class.java))
InvokeVerifier.verify("methodWithArguments").withInOrder(InvokeMatcher.isNull(), InvokeMatcher.notNull())
@@ -65,10 +65,10 @@ internal class DemoMatcherServiceTest {
@Test
fun should_match_with_times() {
- demo.callMethodWithNumberArguments()
+ demoMatcher.callMethodWithNumberArguments()
InvokeVerifier.verify("methodWithArguments").with(InvokeMatcher.anyNumber(), InvokeMatcher.any()).times(3)
- demo.callMethodWithNumberArguments()
+ demoMatcher.callMethodWithNumberArguments()
var gotError = false
try {
InvokeVerifier.verify("methodWithArguments").with(InvokeMatcher.anyNumber(), InvokeMatcher.any()).times(4)
diff --git a/demo/kotlin-demo/src/test/kotlin/com/alibaba/testable/demo/service/DemoMockServiceTest.kt b/demo/kotlin-demo/src/test/kotlin/com/alibaba/testable/demo/DemoMockTest.kt
similarity index 74%
rename from demo/kotlin-demo/src/test/kotlin/com/alibaba/testable/demo/service/DemoMockServiceTest.kt
rename to demo/kotlin-demo/src/test/kotlin/com/alibaba/testable/demo/DemoMockTest.kt
index 898f4a5..d798cff 100644
--- a/demo/kotlin-demo/src/test/kotlin/com/alibaba/testable/demo/service/DemoMockServiceTest.kt
+++ b/demo/kotlin-demo/src/test/kotlin/com/alibaba/testable/demo/DemoMockTest.kt
@@ -1,4 +1,4 @@
-package com.alibaba.testable.demo.service
+package com.alibaba.testable.demo
import com.alibaba.testable.core.annotation.TestableMock
import com.alibaba.testable.core.matcher.InvokeVerifier.verify
@@ -9,13 +9,13 @@ import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Test
import java.util.concurrent.Executors
-internal class DemoMockServiceTest {
+internal class DemoMockTest {
@TestableMock(targetMethod = CONSTRUCTOR)
private fun createBlackBox(text: String) = BlackBox("mock_$text")
@TestableMock
- private fun innerFunc(self: DemoMockService, text: String) = "mock_$text"
+ private fun innerFunc(self: DemoMock, text: String) = "mock_$text"
@TestableMock
private fun trim(self: BlackBox) = "trim_string"
@@ -37,7 +37,7 @@ internal class DemoMockServiceTest {
}
@TestableMock
- private fun callFromDifferentMethod(self: DemoMockService): String {
+ private fun callFromDifferentMethod(self: DemoMock): String {
return if (TEST_CASE == "should_able_to_get_test_case_name") {
"mock_special"
} else {
@@ -48,23 +48,23 @@ internal class DemoMockServiceTest {
}
}
- private val demoService = DemoMockService()
+ private val demoMock = DemoMock()
@Test
fun should_able_to_mock_new_object() {
- assertEquals("mock_something", demoService.newFunc())
+ assertEquals("mock_something", demoMock.newFunc())
verify("createBlackBox").with("something")
}
@Test
fun should_able_to_mock_member_method() {
- assertEquals("{ \"res\": \"mock_hello\"}", demoService.outerFunc("hello"))
+ assertEquals("{ \"res\": \"mock_hello\"}", demoMock.outerFunc("hello"))
verify("innerFunc").with("hello")
}
@Test
fun should_able_to_mock_common_method() {
- assertEquals("trim_string__sub_string__false", demoService.commonFunc())
+ assertEquals("trim_string__sub_string__false", demoMock.commonFunc())
verify("trim").withTimes(1)
verify("sub").withTimes(1)
verify("startsWith").withTimes(1)
@@ -72,7 +72,7 @@ internal class DemoMockServiceTest {
@Test
fun should_able_to_mock_static_method() {
- assertEquals("White_not_secret_box", demoService.getBox().get())
+ assertEquals("White_not_secret_box", demoMock.getBox().get())
verify("secretBox").withTimes(1)
verify("createBox").withTimes(1)
}
@@ -80,10 +80,10 @@ internal class DemoMockServiceTest {
@Test
fun should_able_to_get_source_method_name() {
// synchronous
- assertEquals("mock_one_mock_others", demoService.callerOne() + "_" + demoService.callerTwo())
+ assertEquals("mock_one_mock_others", demoMock.callerOne() + "_" + demoMock.callerTwo())
// asynchronous
assertEquals("mock_one_mock_others", Executors.newSingleThreadExecutor().submit {
- demoService.callerOne() + "_" + demoService.callerTwo()
+ demoMock.callerOne() + "_" + demoMock.callerTwo()
}.get())
verify("callFromDifferentMethod").withTimes(4)
}
@@ -91,10 +91,10 @@ internal class DemoMockServiceTest {
@Test
fun should_able_to_get_test_case_name() {
// synchronous
- assertEquals("mock_special", demoService.callerOne())
+ assertEquals("mock_special", demoMock.callerOne())
// asynchronous
assertEquals("mock_special", Executors.newSingleThreadExecutor().submit {
- demoService.callerOne()
+ demoMock.callerOne()
}.get())
verify("callFromDifferentMethod").withTimes(2)
}
diff --git a/demo/kotlin-demo/src/test/kotlin/com/alibaba/testable/demo/DemoPrivateAccessTest.kt b/demo/kotlin-demo/src/test/kotlin/com/alibaba/testable/demo/DemoPrivateAccessTest.kt
new file mode 100644
index 0000000..317ffb7
--- /dev/null
+++ b/demo/kotlin-demo/src/test/kotlin/com/alibaba/testable/demo/DemoPrivateAccessTest.kt
@@ -0,0 +1,30 @@
+package com.alibaba.testable.demo
+
+import com.alibaba.testable.core.accessor.PrivateAccessor
+import org.junit.jupiter.api.Assertions.assertEquals
+import org.junit.jupiter.api.Test
+
+
+internal class DemoPrivateAccessTest {
+
+ private val demoPrivateAccess = DemoPrivateAccess()
+
+ @Test
+ fun should_able_to_access_private_method() {
+ assertEquals("hello - 1", PrivateAccessor.invoke(demoPrivateAccess, "privateFunc", "hello", 1))
+ }
+
+ @Test
+ fun should_able_to_access_private_field() {
+ PrivateAccessor.set(demoPrivateAccess, "count", 3)
+ assertEquals("5", demoPrivateAccess.privateFieldAccessFunc())
+ assertEquals(5, PrivateAccessor.get(demoPrivateAccess, "count"))
+ }
+
+ @Test
+ fun should_able_to_update_final_field() {
+ PrivateAccessor.set(demoPrivateAccess, "pi", 4.13)
+ assertEquals(4.13, demoPrivateAccess.pi)
+ }
+
+}
diff --git a/demo/kotlin-demo/src/test/kotlin/com/alibaba/testable/demo/service/DemoPrivateAccessServiceTest.kt b/demo/kotlin-demo/src/test/kotlin/com/alibaba/testable/demo/service/DemoPrivateAccessServiceTest.kt
deleted file mode 100644
index 05db7f1..0000000
--- a/demo/kotlin-demo/src/test/kotlin/com/alibaba/testable/demo/service/DemoPrivateAccessServiceTest.kt
+++ /dev/null
@@ -1,30 +0,0 @@
-package com.alibaba.testable.demo.service
-
-import com.alibaba.testable.core.accessor.PrivateAccessor
-import org.junit.jupiter.api.Assertions.assertEquals
-import org.junit.jupiter.api.Test
-
-
-internal class DemoPrivateAccessServiceTest {
-
- private val demoService = DemoPrivateAccessService()
-
- @Test
- fun should_able_to_access_private_method() {
- assertEquals("hello - 1", PrivateAccessor.invoke(demoService, "privateFunc", "hello", 1))
- }
-
- @Test
- fun should_able_to_access_private_field() {
- PrivateAccessor.set(demoService, "count", 3)
- assertEquals("5", demoService.privateFieldAccessFunc())
- assertEquals(5, PrivateAccessor.get(demoService, "count"))
- }
-
- @Test
- fun should_able_to_update_final_field() {
- PrivateAccessor.set(demoService, "pi", 4.13)
- assertEquals(4.13, demoService.pi)
- }
-
-}
diff --git a/docs/frequency-asked-questions.md b/docs/frequency-asked-questions.md
index be7e6c8..7bfd4f4 100644
--- a/docs/frequency-asked-questions.md
+++ b/docs/frequency-asked-questions.md
@@ -13,7 +13,7 @@
因此,不论被调用方法来自父类还是子类,也不论子类是否覆写该方法,Mock方法的首个参数类型都应该使用变量自身的接口或父类类型。
-参见Java和Kotlin示例中`DemoInheritServiceTest`测试类的用例。
+参见Java和Kotlin示例中`DemoInheritTest`测试类的用例。
#### 3. `TestableMock`能否用于Android项目的测试?
diff --git a/docs/matcher.md b/docs/matcher.md
index 9161944..a2dd045 100644
--- a/docs/matcher.md
+++ b/docs/matcher.md
@@ -17,7 +17,7 @@ public test_case() {
除了这种简单校验以外,TestableMock当前已经支持了多种**校验器**,以及能够模糊匹配参数特征的**匹配器**。
-在示例项目`java-demo`和`kotlin-demo`中的`DemoMatcherServiceTest`测试类详细展示了这些校验器和匹配器的用法。
+在示例项目`java-demo`和`kotlin-demo`中的`DemoMatcherTest`测试类详细展示了这些校验器和匹配器的用法。
## 基本校验器
diff --git a/docs/usage.md b/docs/usage.md
index 3880f12..f54c4fa 100644
--- a/docs/usage.md
+++ b/docs/usage.md
@@ -53,7 +53,7 @@
若不希望看到IDE的语法错误提醒,或是在基于JVM的非Java语言项目里(譬如Kotlin语言),也可以借助`PrivateAccessor`工具类来实现私有成员的访问。
-效果见`java-demo`和`kotlin-demo`示例项目中`DemoPrivateAccessService`类的测试用例。
+效果见`java-demo`和`kotlin-demo`示例项目中`DemoPrivateAccessTest`测试类的用例。
### Mock被测类的任意方法调用
@@ -89,10 +89,10 @@ private String substring(String self, int i, int j) {
例如,被测类中有一个签名为`String innerFunc(String)`的私有方法,我们希望在测试的时候将它替换掉,则只需在测试类定义如下方法:
```java
-// 被测类型是`DemoMockService`
-// 因此在定义Mock方法时,在目标方法参数首位加一个类型为`DemoMockService`的参数(名字随意)
+// 被测类型是`DemoMock`
+// 因此在定义Mock方法时,在目标方法参数首位加一个类型为`DemoMock`的参数(名字随意)
@TestableMock
-private String innerFunc(DemoMockService self, String text) {
+private String innerFunc(DemoMock self, String text) {
return "mock_" + text;
}
```
diff --git a/testable-agent/src/test/java/com/alibaba/testable/agent/handler/SourceClassHandlerTest.java b/testable-agent/src/test/java/com/alibaba/testable/agent/handler/SourceClassHandlerTest.java
index 71944d3..fce756b 100644
--- a/testable-agent/src/test/java/com/alibaba/testable/agent/handler/SourceClassHandlerTest.java
+++ b/testable-agent/src/test/java/com/alibaba/testable/agent/handler/SourceClassHandlerTest.java
@@ -27,7 +27,7 @@ class SourceClassHandlerTest {
new InsnNode(ICONST_1),
new InsnNode(ICONST_2),
new MethodInsnNode(INVOKEVIRTUAL, "java/lang/String", "substring", "(II)Ljava/lang/String;", false),
- new MethodInsnNode(INVOKESPECIAL, "com/alibaba/testable/demo/DemoServiceTest", "blackBox", "(Ljava/lang/String;)Lcom/alibaba/testable/demo/BlackBox;", false),
+ new MethodInsnNode(INVOKESPECIAL, "com/alibaba/testable/demo/DemoTest", "blackBox", "(Ljava/lang/String;)Lcom/alibaba/testable/demo/BlackBox;", false),
new MethodInsnNode(INVOKEVIRTUAL, "com/alibaba/testable/demo/BlackBox", "callMe", "()Ljava/lang/String;", false),
new MethodInsnNode(INVOKEVIRTUAL, "java/lang/String", "startsWith", "(Ljava/lang/String;)Z", false)
};