Skip to content

Commit fa5ba85

Browse files
committed
Support running local unit test with transformer
1 parent 5bb10c3 commit fa5ba85

File tree

16 files changed

+229
-4
lines changed

16 files changed

+229
-4
lines changed

booster-test-asm/build.gradle

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
apply from: "$rootDir/gradle/booster.gradle"
2+
3+
dependencies {
4+
implementation project(':booster-test')
5+
implementation project(':booster-transform-asm')
6+
7+
kaptTest 'com.google.auto.service:auto-service:1.0'
8+
testImplementation 'com.github.stefanbirkner:system-rules:1.19.0'
9+
}

booster-test-asm/packages-zh-CN.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Package com.didiglobal.booster.test.asm
2+
3+
提供了基于 ASM 的单元测试支持
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.didiglobal.booster.test.asm
2+
3+
import com.didiglobal.booster.test.BoosterTestRunner
4+
import com.didiglobal.booster.transform.asm.AsmTransformer
5+
import com.didiglobal.booster.transform.asm.ClassTransformer
6+
import com.didiglobal.booster.transform.util.TransformerClassLoader
7+
8+
class BoosterTestRunnerWithAsm(
9+
clazz: Class<*>
10+
) : BoosterTestRunner(clazz, TransformerClassLoader(
11+
clazz.classLoader,
12+
ClassTransformer::class.java::isAssignableFrom
13+
) {
14+
AsmTransformer(it)
15+
})
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.didiglobal.booster.test.asm
2+
3+
import org.junit.Rule
4+
import org.junit.contrib.java.lang.system.SystemOutRule
5+
import org.junit.runner.RunWith
6+
import kotlin.test.Test
7+
import kotlin.test.assertTrue
8+
9+
@RunWith(BoosterTestRunnerWithAsm::class)
10+
class BoosterTestRunnerWithAsmTest {
11+
12+
@get:Rule
13+
val systemOutRule = SystemOutRule().enableLog()
14+
15+
@Test
16+
fun `test booster runner with asm`() {
17+
assertTrue {
18+
systemOutRule.log.isNotBlank()
19+
}
20+
}
21+
22+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.didiglobal.booster.test.asm
2+
3+
import com.didiglobal.booster.transform.TransformContext
4+
import com.didiglobal.booster.transform.asm.ClassTransformer
5+
import com.google.auto.service.AutoService
6+
import org.objectweb.asm.tree.ClassNode
7+
8+
@AutoService(ClassTransformer::class)
9+
class SimpleClassTransformer : ClassTransformer {
10+
11+
override fun transform(context: TransformContext, klass: ClassNode): ClassNode {
12+
println(klass.name)
13+
return klass
14+
}
15+
16+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
apply from: "$rootDir/gradle/booster.gradle"
2+
3+
dependencies {
4+
implementation project(':booster-test')
5+
implementation project(':booster-transform-javassist')
6+
7+
kaptTest 'com.google.auto.service:auto-service:1.0'
8+
testImplementation 'com.github.stefanbirkner:system-rules:1.19.0'
9+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Package com.didiglobal.booster.test.javassist
2+
3+
提供了基于 Javassist 的单元测试支持
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.didiglobal.booster.test.javassist
2+
3+
import com.didiglobal.booster.test.BoosterTestRunner
4+
import com.didiglobal.booster.transform.javassist.ClassTransformer
5+
import com.didiglobal.booster.transform.javassist.JavassistTransformer
6+
import com.didiglobal.booster.transform.util.TransformerClassLoader
7+
8+
class BoosterTestRunnerWithJavassist(
9+
clazz: Class<*>
10+
) : BoosterTestRunner(clazz, TransformerClassLoader(
11+
clazz.classLoader,
12+
ClassTransformer::class.java::isAssignableFrom
13+
) {
14+
JavassistTransformer(it)
15+
})
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.didiglobal.booster.test.javassist
2+
3+
import org.junit.Rule
4+
import org.junit.contrib.java.lang.system.SystemOutRule
5+
import org.junit.runner.RunWith
6+
import kotlin.test.Test
7+
import kotlin.test.assertTrue
8+
9+
@RunWith(BoosterTestRunnerWithJavassist::class)
10+
class BoosterTestRunnerWithJavassistTest {
11+
12+
@get:Rule
13+
val systemOutRule = SystemOutRule().enableLog()
14+
15+
@Test
16+
fun `test booster runner with javassist`() {
17+
assertTrue {
18+
systemOutRule.log.isNotBlank()
19+
}
20+
}
21+
22+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.didiglobal.booster.test.javassist
2+
3+
import com.didiglobal.booster.transform.TransformContext
4+
import com.didiglobal.booster.transform.javassist.ClassTransformer
5+
import com.google.auto.service.AutoService
6+
import javassist.CtClass
7+
8+
@AutoService(ClassTransformer::class)
9+
class SimpleClassTransformer : ClassTransformer {
10+
11+
override fun transform(context: TransformContext, klass: CtClass): CtClass {
12+
println(klass.name)
13+
return klass
14+
}
15+
16+
}

0 commit comments

Comments
 (0)